public DeadPathDetector( PathWatchersCollection watchers, PathRemover pathRemover) { _watchers = watchers; _pathRemover = pathRemover; }
public RenameEventHandler( IEventReactor eventReactor, IFilePathActualizer filePathActualizer, PathWatchersCollection watchers) { _eventReactor = eventReactor; _filePathActualizer = filePathActualizer; _watchers = watchers; }
public DeleteEventHandler( IEventReactor eventReactor, IIndexEjector indexEjector, PathWatchersCollection watchers) { _eventReactor = eventReactor; _watchers = watchers; _indexEjector = indexEjector; }
public PathRemover( IEventReactor eventReactor, PathWatchersCollection watchers, IIndexEjector indexEjector) { _eventReactor = eventReactor; _watchers = watchers; _indexEjector = indexEjector; }
public FileSupervisor( IEventReactor eventReactor, FileSystemEventsProcessor eventsProcessor, PathWatchersCollection watchers, PathPoller pathPoller) { _eventReactor = eventReactor; _eventsProcessor = eventsProcessor; _watchers = watchers; _pathPoller = pathPoller; }
public PathPoller( DeadPathDetector deadPathCleaner, PathWatchersCollection watchers) { _deadPathCleaner = deadPathCleaner; _watchers = watchers; _timer = new Timer { Enabled = false, Interval = PoolingIntervalMs }; _timer.Elapsed += Check; }
/// <summary> /// Creates new search engine instance /// </summary> /// <param name="settings">Engine settings object</param> /// <returns>New search engine instance</returns> public static ISearchEngine New(SearchEngineSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } var eventReactor = new EventReactor(); var fileParserProvider = new FileParserProvider(settings); var filesVersionsRegistry = new FilesVersionsRegistry(); var index = new Index.Index(); var indexer = new FileIndexer(eventReactor, fileParserProvider, index, filesVersionsRegistry, settings); var indexEjector = new IndexEjector(eventReactor, filesVersionsRegistry); var indexUpdater = new IndexUpdater(eventReactor, indexer, filesVersionsRegistry); var watchersCollection = new PathWatchersCollection(); var fileSupervisor = new FileSupervisor( eventReactor, new FileSystemEventsProcessor( new FileSystemEventHandler( new CreateEventHandler(indexer), new ChangeEventHandler(indexUpdater), new DeleteEventHandler(eventReactor, indexEjector, watchersCollection), new RenameEventHandler( eventReactor, new FilePathActualizer(filesVersionsRegistry), watchersCollection ) ) ), watchersCollection, new PathPoller( new DeadPathDetector( watchersCollection, new PathRemover(eventReactor, watchersCollection, indexEjector) ), watchersCollection ) ); var searcher = new Searcher(index); var indexCleaner = new IndexCleaner(eventReactor, index, filesVersionsRegistry, settings); var scheduler = new Scheduler(indexCleaner, settings); return(new SearchEngine(eventReactor, indexer, indexEjector, fileSupervisor, searcher, scheduler)); }