Пример #1
0
        public LogAnalyserProxy(ITaskScheduler scheduler,
                                ILogFile logFile,
                                ILogAnalyserPlugin plugin,
                                ILogAnalyserConfiguration configuration,
                                IDataSourceAnalysisListener listener)
        {
            if (scheduler == null)
            {
                throw new ArgumentNullException(nameof(scheduler));
            }
            if (logFile == null)
            {
                throw new ArgumentNullException(nameof(logFile));
            }
            if (plugin == null)
            {
                throw new ArgumentNullException(nameof(plugin));
            }
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }
            if (listener == null)
            {
                throw new ArgumentNullException(nameof(listener));
            }

            _syncRoot      = new object();
            _scheduler     = scheduler;
            _logFile       = logFile;
            _plugin        = plugin;
            _configuration = configuration;
            _listener      = listener;
        }
Пример #2
0
        public void RegisterFactory(ILogAnalyserPlugin plugin)
        {
            if (plugin == null)
            {
                throw new ArgumentNullException(nameof(plugin));
            }

            lock (_syncRoot)
            {
                var id = plugin.Id;
                if (_factoriesById.ContainsKey(id))
                {
                    throw new ArgumentException(string.Format("There already exists a plugin of id '{0}'", id));
                }

                _factoriesById.Add(id, plugin);
            }
        }