CmisSync.Lib.Queueing.SyncEventQueue.AddEvent C# (CSharp) 메소드

AddEvent() 공개 메소드

Adds the event to the queue.
When Listener is already stopped
public AddEvent ( ISyncEvent newEvent ) : void
newEvent ISyncEvent New event.
리턴 void
        public virtual void AddEvent(ISyncEvent newEvent) {
            if (this.alreadyDisposed) {
                Logger.Info(string.Format("Queue was already Disposed. Dropping Event: {0}", newEvent.ToString()));
                return;
            }

            if (this.IsStopped) {
                Logger.Info(string.Format("Queue was already Stopped. Dropping Event: {0}", newEvent.ToString()));
                return;
            }

            try {
                if (newEvent is ICountableEvent) {
                    var category = (newEvent as ICountableEvent).Category;
                    if (category != EventCategory.NoCategory) {
                        lock (this.subscriberLock) {
                            this.categoryCounter.Increase(newEvent as ICountableEvent);
                            this.fullCounter.Increase(newEvent as ICountableEvent);
                        }
                    }
                }

                this.queue.Add(newEvent);
                if (!(newEvent is IRemoveFromLoggingEvent)) {
                    Logger.Debug(string.Format("Added Event: {0}", newEvent.ToString()));
                }
            } catch(InvalidOperationException) {
                Logger.Info(string.Format("Queue was already Stopped. Dropping Event: {0}", newEvent.ToString()));
            }
        }