public FileSystemSnapshotManager( IFileSystemNameFactory fileSystemNameFactory, IFileSystem fileSystem, IFileRegistrationTracker fileRegistrationTracker, IFileSystemSnapshotBuilder fileSystemSnapshotBuilder, IOperationProcessor operationProcessor, IProjectDiscovery projectDiscovery, IDirectoryChangeWatcherFactory directoryChangeWatcherFactory, ITaskQueueFactory taskQueueFactory, ILongRunningFileSystemTaskQueue longRunningFileSystemTaskQueue) { _fileSystemNameFactory = fileSystemNameFactory; _fileSystem = fileSystem; _fileSystemSnapshotBuilder = fileSystemSnapshotBuilder; _operationProcessor = operationProcessor; _projectDiscovery = projectDiscovery; _longRunningFileSystemTaskQueue = longRunningFileSystemTaskQueue; _fileRegistrationTracker = fileRegistrationTracker; _flushPathChangesTaskQueue = taskQueueFactory.CreateQueue("FileSystemSnapshotManager Path Changes Task Queue"); _fileRegistrationTracker.ProjectListChanged += FileRegistrationTrackerOnProjectListChanged; _fileRegistrationTracker.ProjectListRefreshed += FileRegistrationTrackerOnProjectListRefreshed; _fileSystemSnapshot = FileSystemSnapshot.Empty; _directoryChangeWatcher = directoryChangeWatcherFactory.CreateWatcher(); _directoryChangeWatcher.PathsChanged += DirectoryChangeWatcherOnPathsChanged; _directoryChangeWatcher.Error += DirectoryChangeWatcherOnError; }
public FileSystemSnapshotManager( IFileSystemNameFactory fileSystemNameFactory, IFileSystem fileSystem, IFileRegistrationTracker fileRegistrationTracker, IFileSystemSnapshotBuilder fileSystemSnapshotBuilder, IOperationProcessor operationProcessor, IProjectDiscovery projectDiscovery, IDirectoryChangeWatcherFactory directoryChangeWatcherFactory, ITaskQueueFactory taskQueueFactory, ILongRunningFileSystemTaskQueue longRunningFileSystemTaskQueue) { _fileSystemNameFactory = fileSystemNameFactory; _fileSystem = fileSystem; _fileSystemSnapshotBuilder = fileSystemSnapshotBuilder; _operationProcessor = operationProcessor; _projectDiscovery = projectDiscovery; _longRunningFileSystemTaskQueue = longRunningFileSystemTaskQueue; _fileRegistrationTracker = fileRegistrationTracker; _flushPathChangesTaskQueue = taskQueueFactory.CreateQueue("FileSystemSnapshotManager Path Changes Task Queue"); _taskExecutor = taskQueueFactory.CreateQueue("FileSystemSnapshotManager State Change Task Queue"); _fileRegistrationTracker.ProjectListChanged += FileRegistrationTrackerOnProjectListChanged; _currentSnapshot = FileSystemSnapshot.Empty; _directoryChangeWatcher = directoryChangeWatcherFactory.CreateWatcher(TimeSpan.FromSeconds(60)); _directoryChangeWatcher.PathsChanged += DirectoryChangeWatcherOnPathsChanged; _directoryChangeWatcher.Error += DirectoryChangeWatcherOnError; _directoryChangeWatcher.Paused += DirectoryChangeWatcherOnPaused; _directoryChangeWatcher.Resumed += DirectoryChangeWatcherOnResumed; }
public SearchEngine( IFileSystemSnapshotManager fileSystemSnapshotManager, IFileSystemNameFactory fileSystemNameFactory, ILongRunningFileSystemTaskQueue taskQueue, IFileDatabaseSnapshotFactory fileDatabaseSnapshotFactory, IProjectDiscovery projectDiscovery, ICompiledTextSearchDataFactory compiledTextSearchDataFactory, IOperationProcessor operationProcessor) { _fileSystemNameFactory = fileSystemNameFactory; _taskQueue = taskQueue; _fileDatabaseSnapshotFactory = fileDatabaseSnapshotFactory; _projectDiscovery = projectDiscovery; _compiledTextSearchDataFactory = compiledTextSearchDataFactory; _operationProcessor = operationProcessor; // Create a "Null" state _currentFileDatabase = _fileDatabaseSnapshotFactory.CreateEmpty(); // Setup computing a new state everytime a new tree is computed. fileSystemSnapshotManager.SnapshotScanFinished += FileSystemSnapshotManagerOnSnapshotScanFinished; fileSystemSnapshotManager.FilesChanged += FileSystemSnapshotManagerOnFilesChanged; }