AcManager.Tools.Managers.InnerHelpers.DirectoryWatcher.Subscribe C# (CSharp) Method

Subscribe() public method

public Subscribe ( [ listener ) : void
listener [
return void
        public void Subscribe([NotNull] IDirectoryListener listener) {
            if (listener == null) throw new ArgumentNullException(nameof(listener));
            if (_failed) return;

            if (_innerWatcher != null) {
                _innerWatcher.Changed += listener.FileOrDirectoryChanged;
                _innerWatcher.Created += listener.FileOrDirectoryCreated;
                _innerWatcher.Deleted += listener.FileOrDirectoryDeleted;
                _innerWatcher.Renamed += listener.FileOrDirectoryRenamed;
            }

            lock (_listeners) {
                _listeners.Add(listener);
            }
        }

Usage Example

Example #1
0
        private static void AddDirectoryListener(IDirectoryListener listener) {
            if (_watcher == null) {
                _watcher = new DirectoryWatcher(FileUtils.GetCarSetupsDirectory());
                _watcher.Subscribe(new InternalListener());
                Logging.Write("[CarSetupsDirectories.InternalListener] Start watching…");
            }

            Listeners.Purge();
            Listeners.Add(listener);
        }