public SearchEngine(
            EventReactor eventReactor,
            IFileIndexer indexer,
            IIndexEjector indexEjector,
            IFileSupervisor supervisor,
            ISearcher searcher,
            IScheduler scheduler)
        {
            _indexer      = indexer;
            _indexEjector = indexEjector;
            _supervisor   = supervisor;
            _searcher     = searcher;
            _scheduler    = scheduler;

            eventReactor.Register(EngineEvent.PathWatchingStarted, a => PathWatchingStarted?.Invoke(a));
            eventReactor.Register(EngineEvent.PathWatchingEnded, a => PathWatchingEnded?.Invoke(a));
            eventReactor.Register(EngineEvent.FileIndexingStarted, a => FileIndexingStarted?.Invoke(a));
            eventReactor.Register(EngineEvent.FileIndexingEnded, a => FileIndexingEnded?.Invoke(a));
            eventReactor.Register(EngineEvent.FileRemovingStarted, a => FileRemovingStarted?.Invoke(a));
            eventReactor.Register(EngineEvent.FileRemovingEnded, a => FileRemovingEnded?.Invoke(a));
            eventReactor.Register(EngineEvent.FileUpdateInitiated, a => FileUpdateInitiated?.Invoke(a));
            eventReactor.Register(EngineEvent.FileUpdateFailed, a => FileUpdateFailed?.Invoke(a));
            eventReactor.Register(EngineEvent.PathChanged, a => FilePathChanged?.Invoke(a));
            eventReactor.Register(EngineEvent.IndexCleanUpFailed, a => IndexCleanUpFailed?.Invoke(a));

            _scheduler.Start();
        }
Esempio n. 2
0
 public DeleteEventHandler(
     IEventReactor eventReactor,
     IIndexEjector indexEjector,
     PathWatchersCollection watchers)
 {
     _eventReactor = eventReactor;
     _watchers     = watchers;
     _indexEjector = indexEjector;
 }
Esempio n. 3
0
 public PathRemover(
     IEventReactor eventReactor,
     PathWatchersCollection watchers,
     IIndexEjector indexEjector)
 {
     _eventReactor = eventReactor;
     _watchers     = watchers;
     _indexEjector = indexEjector;
 }