public IndexEjector( IEventReactor eventReactor, FilesVersionsRegistry filesVersionsRegistry) { _eventReactor = eventReactor; _filesVersionsRegistry = filesVersionsRegistry; }
public IndexUpdater( IEventReactor eventReactor, IFileIndexer fileIndexer, FilesVersionsRegistry filesVersionsRegistry) { _eventReactor = eventReactor; _fileIndexer = fileIndexer; _filesVersionsRegistry = filesVersionsRegistry; }
public IndexCleaner( IEventReactor eventReactor, IIndex index, FilesVersionsRegistry filesVersionsRegistry, SearchEngineSettings settings) { _eventReactor = eventReactor; _index = index; _filesVersionsRegistry = filesVersionsRegistry; _settings = settings; }
public FileIndexer( IEventReactor eventReactor, FileParserProvider parserProvider, IIndex index, FilesVersionsRegistry filesVersionsRegistry, SearchEngineSettings settings) { _eventReactor = eventReactor; _parserProvider = parserProvider; _index = index; _filesVersionsRegistry = filesVersionsRegistry; _settings = settings; }
/// <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)); }
public FilePathActualizer(FilesVersionsRegistry registry) { _registry = registry; }