Beispiel #1
0
 public void Release()
 {
     lock (_lock)
     {
         UnsubscribeToWatcher();
         SharedWatcher.Release();
     }
 }
Beispiel #2
0
            public SharedWatcher(string uniquePath, PathWatcher pathWatcher)
            {
                UniquePath  = uniquePath;
                PathWatcher = pathWatcher;

                string folderPath = FileSystem.GetFolderPath(uniquePath);

                if (folderPath == null)
                {
                    throw new InvalidOperationException();
                }

                FolderPath     = FileSystem.UniqueFolder(folderPath);
                _parentWatcher = PathWatcher.GetSharedWatcher(FolderPath);

                TryGetInternalWatcher();
                StartWatchFolder();
                StartWatchParentFolder();
            }
Beispiel #3
0
            public PathHandlersBase(string uniquePath, SharedWatcher sharedWatcher, bool subscribeToChanged)
            {
                UniquePath  = uniquePath;
                PathPattern = new PathPattern(uniquePath, sharedWatcher.FileSystem.PathsCaseSensitive);

                SharedWatcher       = sharedWatcher;
                _subscribeToChanged = subscribeToChanged;

                SharedWatcher.Increment();
                SharedWatcher.FolderCreated += OnParentFolderCreated;
                SharedWatcher.FolderDeleted += OnParentFolderDeleted;

                PathCaseComparison caseComparison = sharedWatcher.FileSystem.PathsCaseSensitive
                    ? PathCaseComparison.RespectCase
                    : PathCaseComparison.IgnoreCase;

                var existingPathComparer = new PathComparer(caseComparison, FolderPathEquality.RespectAmbiguity);

                _matchingPaths = new ConcurrentDictionary <string, bool>(existingPathComparer);

                RefreshExistingMatchingPaths();
                SubscribeToWatcher();
            }
Beispiel #4
0
 public FolderHandlers(string uniquePath, SharedWatcher sharedWatcher, FolderChangedEventHandler handler, LogLevel logLevel)
     : base(uniquePath, sharedWatcher, subscribeToChanged: false)
 {
     _handler  = handler;
     _logLevel = logLevel;
 }
Beispiel #5
0
 public FileHandlers(string uniquePath, SharedWatcher sharedWatcher, FileChangedEventHandler handler, LogLevel logLevel)
     : base(uniquePath, sharedWatcher, subscribeToChanged: true)
 {
     _handler  = handler;
     _logLevel = logLevel;
 }