private bool TryGetPlugin(AnalyserPluginId id, out IDataSourceAnalyserPlugin plugin)
 {
     lock (_syncRoot)
     {
         return(_factoriesById.TryGetValue(id, out plugin));
     }
 }
예제 #2
0
        /// <summary>
        /// </summary>
        /// <param name="pluginId"></param>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public IDataSourceAnalyser Add(AnalyserPluginId pluginId, ILogAnalyserConfiguration configuration)
        {
            var template = new AnalyserTemplate
            {
                Id = AnalyserId.CreateNew(),
                AnalyserPluginId = pluginId,
                Configuration    = configuration
            };

            var analyser = Add(template);

            _template.Add(template);

            return(analyser);
        }
예제 #3
0
        private IDataSourceAnalysisHandle CreatAnalysisFor(AnalyserPluginId id,
                                                           ILogFile logFile,
                                                           ILogAnalyserConfiguration configuration,
                                                           IDataSourceAnalysisListener listener)
        {
            IDataSourceAnalysisHandle analysis;
            ILogAnalyserPlugin        plugin;

            if (_factoriesById.TryGetValue(id, out plugin))
            {
                analysis = new LogAnalyserProxy(_scheduler, logFile, plugin, configuration, listener);
            }
            else
            {
                Log.ErrorFormat("Unable to find plugin '{0}', analysis will be skipped", id);
                analysis = new DummyAnalysis();
            }

            return(analysis);
        }
        public DataSourceAnalyserSnapshot(AnalyserId id,
                                          AnalyserPluginId pluginId,
                                          ILogAnalyserConfiguration configuration,
                                          ILogAnalysisResult result,
                                          Percentage progress)
        {
            if (id == AnalyserId.Empty)
            {
                throw new ArgumentException(nameof(id));
            }
            if (pluginId == Analysis.AnalyserPluginId.Empty)
            {
                throw new ArgumentException(nameof(pluginId));
            }

            Id = id;
            AnalyserPluginId = pluginId;
            _configuration   = configuration;
            _result          = result;
            _progress        = progress;
        }
예제 #5
0
 public NoAnalyser(AnalyserPluginId pluginId)
     : this()
 {
     _pluginId = pluginId;
 }
예제 #6
0
 public IDataSourceAnalyser Add(AnalyserPluginId pluginId, ILogAnalyserConfiguration configuration)
 {
     throw new InvalidOperationException("Adding new analysers to a snapshot is not allowed");
 }