public HiveEventPublisher(HiveEvents supportedEvents) { _supportedEvents = supportedEvents; _activeEvents = HiveEvents.None; _addEventSubscribers = null; _removingEventSubscribers = null; }
public void Subscribe(IHiveEventSubscriber <T, TSize, TIterator> subscriber, HiveEvents toEvents) { if ((toEvents & HiveEvents.Added) == HiveEvents.Added) { Subscribe(subscriber, HiveEvents.Added, ref _addEventSubscribers); } if ((toEvents & HiveEvents.Removing) == HiveEvents.Removing) { Subscribe(subscriber, HiveEvents.Removing, ref _removingEventSubscribers); } }
public void Unsubscribe(IHiveEventSubscriber <T, TSize, TIterator> subscriber, HiveEvents fromEvents) { if ((fromEvents & HiveEvents.Added) == HiveEvents.Added && _addEventSubscribers != null) { _addEventSubscribers.Remove(subscriber); } if ((fromEvents & HiveEvents.Removing) == HiveEvents.Removing && _removingEventSubscribers != null) { _removingEventSubscribers.Remove(subscriber); } }
private void Subscribe(IHiveEventSubscriber <T, TSize, TIterator> subscriber, HiveEvents toEvent, ref IList <IHiveEventSubscriber <T, TSize, TIterator> > subscriberList) { if ((_supportedEvents & toEvent) == 0) { throw new NotSupportedException( string.Format("The '{0}' event is not supported.", toEvent)); } if (subscriberList == null) { subscriberList = new List <IHiveEventSubscriber <T, TSize, TIterator> >(); } subscriberList.Add(subscriber); }
public bool HasSubscriptionForAny(HiveEvents hiveEvents) { return((_activeEvents & hiveEvents) != HiveEvents.None); }
public bool HasSubscriptionForAll(HiveEvents hiveEvents) { return((_activeEvents & hiveEvents) == hiveEvents); }