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; } }
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); }
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); }
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); } }