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; }
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); } }