public void Unsubscribe <T>(string topic, IHandleOrder <T> handler) where T : IMessage
        {
            lock (_lock)
            {
                var subscriptions = CopySubscribers(topic);
                subscriptions.Remove(handler);

                ReplaceSubscribers(topic, subscriptions);
            }
        }
        private void Subscribe <T>(string topic, IHandleOrder <T> handler) where T : IMessage
        {
            lock (_lock)
            {
                var subscriptions = CopySubscribers(topic);
                if (subscriptions.Contains(handler))
                {
                    return;
                }

                subscriptions.Add(handler);

                ReplaceSubscribers(topic, subscriptions);
            }
        }
Esempio n. 3
0
 public static QueuedHandler <T> Create <T>(IHandleOrder <T> handler, string name) where T : IMessage
 {
     return(new QueuedHandler <T>(name, handler));
 }
Esempio n. 4
0
 public NarrowingHandler(IHandleOrder <TOutput> handler)
 {
     _handler = handler;
 }
Esempio n. 5
0
 public static IHandleOrder <T> WrapWithDropper <T>(this IHandleOrder <T> handler) where T : IMessage
 {
     return(new DroppingHandler <T>(handler));
 }
        public void Unsubscribe <T>(IHandleOrder <T> handler) where T : IMessage
        {
            var topic = GetTopic <T>();

            Unsubscribe(topic, handler);
        }
 public void SubscribeByCorrelationId <T>(string correlationId, IHandleOrder <T> handler) where T : IMessage
 {
     Subscribe(correlationId, handler);
 }