private bool TryGetPlugin(AnalyserPluginId id, out IDataSourceAnalyserPlugin plugin)
 {
     lock (_syncRoot)
     {
         return(_factoriesById.TryGetValue(id, out plugin));
     }
 }
Beispiel #2
0
        private IPluginLoader CreatePluginLoader(IDataSourceAnalyserPlugin pluginObject)
        {
            var loader = new PluginRegistry();

            loader.Register(pluginObject);
            return(loader);
        }
Beispiel #3
0
        public DataSourceAnalyserProxy(IDataSourceAnalyserPlugin plugin,
                                       AnalyserId id,
                                       ITaskScheduler scheduler,
                                       ILogFile logFile,
                                       ILogAnalyserConfiguration configuration)
        {
            _plugin        = plugin;
            _id            = id;
            _logFile       = logFile;
            _configuration = configuration;

            _analyser = TryCreateAnalyser(scheduler);
        }
        public void RegisterFactory(IDataSourceAnalyserPlugin 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);
            }
        }