CmisSync.Lib.Producer.Watcher.MacWatcher.OnFSEventStreamEvents C# (CSharp) Method

OnFSEventStreamEvents() private method

private OnFSEventStreamEvents ( object sender, FSEventStreamEventsArgs e ) : void
sender object
e FSEventStreamEventsArgs
return void
        private void OnFSEventStreamEvents(object sender, FSEventStreamEventsArgs e) {
            foreach (MonoMac.CoreServices.FSEvent fsEvent in e.Events) {
                bool isFile = (fsEvent.Flags & FSEventStreamEventFlags.ItemIsFile) != 0;
                if ((fsEvent.Flags & FSEventStreamEventFlags.ItemRemoved) != 0 && !FileOrDirectoryExists(fsEvent.Path, isFile)) {
                    this.Queue.AddEvent(new CmisSync.Lib.Events.FSEvent(WatcherChangeTypes.Deleted, fsEvent.Path, !isFile));
                    continue;
                }

                if ((fsEvent.Flags & FSEventStreamEventFlags.ItemCreated) != 0 && FileOrDirectoryExists(fsEvent.Path, isFile)) {
                    this.Queue.AddEvent(new CmisSync.Lib.Events.FSEvent(WatcherChangeTypes.Created, fsEvent.Path, !isFile));
                }

                if (((fsEvent.Flags & FSEventStreamEventFlags.ItemModified) != 0
                    || (fsEvent.Flags & FSEventStreamEventFlags.ItemInodeMetaMod) != 0)
                    && FileOrDirectoryExists(fsEvent.Path, isFile)) {
                    this.Queue.AddEvent(new CmisSync.Lib.Events.FSEvent(WatcherChangeTypes.Changed, fsEvent.Path, !isFile));
                }

                if ((fsEvent.Flags & FSEventStreamEventFlags.ItemRenamed) != 0) {
                    if (FileOrDirectoryExists(fsEvent.Path, isFile)) {
                        if (this.LastRenameEvent != null && this.LastRenameEvent.Value.Id == fsEvent.Id - 1) {
                            this.Queue.AddEvent(new CmisSync.Lib.Events.FSMovedEvent(this.LastRenameEvent.Value.Path, fsEvent.Path, !isFile));
                            this.LastRenameEvent = null;
                        } else {
                            this.Queue.AddEvent(new CmisSync.Lib.Events.FSEvent(WatcherChangeTypes.Created, fsEvent.Path, !isFile));
                        }
                    } else {
                        this.CleanLastRenameEvent();
                        this.LastRenameEvent = fsEvent;
                        continue;
                    }
                }

                this.CleanLastRenameEvent();
            }
        }