Ejemplo n.º 1
0
        private void TryRemoveSubscriber(MessageListEntry <TMessage, TSubscriber> e)
        {
            if (!e.Empty())
            {
                return;
            }

            OnRemovingSubscriber(e);

            Subscribers.Remove(e.SubscriberId);

            OnDisposingSubscription(e);

            e.Dispose();
        }
Ejemplo n.º 2
0
        private void Subscribe(TMessage message)
        {
            var e = Subscribers.Get(message.SubscriberId);

            if (e == null)
            {
                var subscriber = OnCreatingSubscriber(message.SubscriberId, message);
                Subscribers.Add(message.SubscriberId, e = new MessageListEntry <TMessage, TSubscriber>(subscriber, message.SubscriberId));
            }

            //only add if not an update

            if (!e.Process(message))
            {
                OnAddingToSubscriber(e, message);
            }
        }
Ejemplo n.º 3
0
 protected abstract void OnDisposingSubscription(MessageListEntry <TMessage, TSubscriber> entry);
Ejemplo n.º 4
0
 protected abstract void OnRemovingSubscriber(MessageListEntry <TMessage, TSubscriber> entry);
Ejemplo n.º 5
0
 protected abstract void OnRemovingFromSubscriber(MessageListEntry <TMessage, TSubscriber> entry, TMessage message);
Ejemplo n.º 6
0
 protected abstract void OnAddingToSubscriber(MessageListEntry <TMessage, TSubscriber> entry, TMessage message);