// Template method pattern
        public virtual void Subscribe(IStateEventSubscriber subscriber, IStateEventNotifier notifier)
        {
            if (subscriber == null)
                throw new ArgumentNullException("subscriber");
            if (notifier == null)
                throw new ArgumentNullException("notifier");
            if (_subscriptions.Count(s => s.Notifier == notifier) > 0)
                throw new ArgumentException("Notifier has already been subscribed", "notifier");

            _subscriptions.Add(new StateEventSubscription(subscriber, notifier));
            notifier.Changed += new StateEventHandler(NotifierChanged);
        }
Пример #2
0
        public virtual void Subscribe(IStateEventSubscriber subscriber, IStateEventNotifier notifier) // Template method pattern
        {
            if (subscriber == null)
            {
                throw new ArgumentNullException("subscriber");
            }
            if (notifier == null)
            {
                throw new ArgumentNullException("notifier");
            }
            if (_subscriptions.Count(s => s.Notifier == notifier) > 0)
            {
                throw new ArgumentException("Notifier has already been subscribed", "notifier");
            }

            _subscriptions.Add(new StateEventSubscription(subscriber, notifier));
            notifier.Changed += new StateEventHandler(NotifierChanged);
        }
 public StateEventSubscription(IStateEventSubscriber subscriber, IStateEventNotifier notifier)
 {
     _subscriber = subscriber;
     _notifier = notifier;
 }
 public StateEventSubscription(IStateEventSubscriber subscriber, IStateEventNotifier notifier)
 {
     _subscriber = subscriber;
     _notifier   = notifier;
 }