public SearchResult( ISearchManagerInternal owner, SearchAllOptions options, IFilter optionsFilter, IList <ILogSourceSearchWorkerInternal> workers, Progress.IProgressAggregatorFactory progressAggregatorFactory, ISynchronizationContext modelSynchronization, Settings.IGlobalSettingsAccessor settings, int id, ISearchObjectsFactory factory, ITraceSourceFactory traceSourceFactory ) { this.owner = owner; this.options = options; this.optionsFilter = optionsFilter; this.factory = factory; this.modelSynchronization = modelSynchronization; this.id = id; this.cancellation = new CancellationTokenSource(); this.results = new List <ISourceSearchResultInternal>(); this.progressAggregator = progressAggregatorFactory.CreateProgressAggregator(); this.updateInvokationHelper = new AsyncInvokeHelper(modelSynchronization, UpdateStatus); this.hitsLimit = settings.MaxNumberOfHitsInSearchResultsView; this.visible = true; this.trace = traceSourceFactory.CreateTraceSource("SearchManager", "sr." + id.ToString()); this.timeGapsDetector = new TimeGapsDetector(trace, modelSynchronization, this, traceSourceFactory); this.timeGapsDetector.OnTimeGapsChanged += (s, e) => { owner.OnResultChanged(this, SearchResultChangeFlag.TimeGapsChanged); }; this.progressAggregator.ProgressChanged += HandleProgressChanged; this.searchTime = Stopwatch.StartNew(); this.results.AddRange(workers.Select(w => factory.CreateSourceSearchResults(w, this, cancellation.Token, progressAggregator))); if (results.Count == 0) { status = SearchResultStatus.Finished; HandleFinalStateTransition(); } }
ICombinedSearchResultInternal ISearchObjectsFactory.CreateCombinedSearchResult(ISearchManagerInternal owner) { return(new CombinedSearchResult(owner, this)); }
ISearchResultInternal ISearchObjectsFactory.CreateSearchResults( ISearchManagerInternal owner, SearchAllOptions options, IFilter optionsFilter, int id, IList <ILogSourceSearchWorkerInternal> workers) { return(new SearchResult(owner, options, optionsFilter, workers, progressAggregatorFactory, modelSynchronization, settings, id, this, traceSourceFactory)); }
public CombinedSearchResult(ISearchManagerInternal owner, ISearchObjectsFactory objectsFactory) { this.owner = owner; this.objectsFactory = objectsFactory; }