private SubscriberToken GetToken(Type type) { var token = new SubscriberToken(_tokenId, type); _tokenId++; return(token); }
public void Unsubscribe(SubscriberToken token) { if (token == null) { throw new Exception("token is null"); } lock (_subscribers) { List <ISubscription> subs; if (!_subscribers.TryGetValue(token.Type, out subs)) { return; } subs.RemoveAll(sub => ReferenceEquals(sub.Token, token)); } }
public Subscription(SubscriberToken token, Action <TMessage> deliveryAction) { _token = token; _deliveryAction = deliveryAction; }