예제 #1
0
 public void Publish(object eventType, object eventParameter)
 {
     if (this._eventSubscriptions.ContainsKey(eventType))
     {
         EventRegistry.EventSubscription eventSubscription = this._eventSubscriptions[eventType];
         eventSubscription._publishingEventIndex = eventSubscription._callbacks.Count - 1;
         while (eventSubscription._publishingEventIndex >= 0)
         {
             eventSubscription._callbacks[eventSubscription._publishingEventIndex](eventParameter);
             eventSubscription._publishingEventIndex--;
         }
         eventSubscription._publishingEventIndex = -1;
     }
 }
예제 #2
0
 public void Subscribe(object eventType, EventRegistry.SubscriberCallback newSubscriber)
 {
     EventRegistry.EventSubscription eventSubscription;
     if (this._eventSubscriptions.ContainsKey(eventType))
     {
         eventSubscription = this._eventSubscriptions[eventType];
     }
     else
     {
         eventSubscription = new EventRegistry.EventSubscription();
         this._eventSubscriptions[eventType] = eventSubscription;
     }
     eventSubscription._callbacks.Add(newSubscriber);
 }
예제 #3
0
 public void Subscribe(object eventType, EventRegistry.SubscriberCallback newSubscriber)
 {
     EventRegistry.EventSubscription eventSubscription;
     if (this._eventSubscriptions.ContainsKey(eventType))
     {
         eventSubscription = this._eventSubscriptions[eventType];
     }
     else
     {
         eventSubscription = new EventRegistry.EventSubscription();
         this._eventSubscriptions[eventType] = eventSubscription;
     }
     eventSubscription._callbacks.Add(newSubscriber);
 }
예제 #4
0
 public void Unsubscribe(object eventType, EventRegistry.SubscriberCallback unsubscriber)
 {
     if (this._eventSubscriptions.ContainsKey(eventType))
     {
         EventRegistry.EventSubscription eventSubscription = this._eventSubscriptions[eventType];
         if (eventSubscription._publishingEventIndex > -1)
         {
             int num = eventSubscription._callbacks.IndexOf(unsubscriber);
             if (num < eventSubscription._publishingEventIndex)
             {
                 eventSubscription._publishingEventIndex--;
             }
         }
         eventSubscription._callbacks.Remove(unsubscriber);
     }
 }