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); } }
public static QueuedHandler <T> Create <T>(IHandleOrder <T> handler, string name) where T : IMessage { return(new QueuedHandler <T>(name, handler)); }
public NarrowingHandler(IHandleOrder <TOutput> handler) { _handler = handler; }
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); }