Example #1
0
        /// <summary>
        /// Registrers logger with StatisticsUpdater if no logger of this type is already registered
        /// and returns registered logger.
        /// </summary>
        /// <param name="logger">The logger that is registered.</param>
        /// <param name="logType">Type of the logger.</param>
        /// <returns>Registered log.</returns>
        /// <remarks>
        /// When no logger is registered it returns specified logger.
        /// When logger of the same type is already registered it returns registered logger.
        /// </remarks>
        public Logging.CommunicationLog RegisterLog(Logging.CommunicationLog logger, ServiceType logType)
        {
            lock (this)
            {
                switch (logType)
                {
                case ServiceType.Sender:
                    if (this.SenderLogger == null)
                    {
                        this.SenderLogger = logger;
                    }
                    return(this.SenderLogger);

                case ServiceType.Receiver:
                    if (this.ReceiverLogger == null)
                    {
                        this.ReceiverLogger = logger;
                    }
                    return(this.ReceiverLogger);

                case ServiceType.Executor:
                    if (this.ExecutorLogger == null)
                    {
                        this.ExecutorLogger = logger;
                    }
                    return(this.ExecutorLogger);

                case ServiceType.None:
                default:
                    return(null);
                }
            }
        }
Example #2
0
        /// <summary>
        /// Initialize Executor module dependencies.
        /// </summary>
        /// <param name="dependencies">Dependencies collection.</param>
        public override void BindInternalDependencies(IDictionary <string, ICommunicationModule> dependencies)
        {
            base.BindInternalDependencies(dependencies);
            Logging.CommunicationLog log = Logging.CommunicationModuleLogger.CreateLog();

            if (dependencies.ContainsKey("Transmitter") == false)
            {
                this.Log = log;
            }
            else
            {
                this.Log = (dependencies["Transmitter"] as Transmitter.TransmitterManager)
                           .Updater.RegisterLog(log, ServiceType.Executor);
            }
        }