private WampRawTopic <TMessage> CreateRawTopic(string topicUri, SubscribeOptions subscriptionOptions, IWampCustomizedSubscriptionId customizedSubscriptionId) { WampRawTopic <TMessage> newTopic = new WampRawTopic <TMessage>(topicUri, subscriptionOptions, customizedSubscriptionId, mEventSerializer, mBinding); mTopicUriToTopic.TryAdd(customizedSubscriptionId, newTopic); newTopic.TopicEmpty += OnTopicEmpty; return(newTopic); }
private void OnTopicEmpty(object sender, EventArgs e) { WampRawTopic <TMessage> rawTopic = sender as WampRawTopic <TMessage>; if (rawTopic != null) { lock (mLock) { if (!rawTopic.HasSubscribers) { mSubscriptionIdToTopic.TryRemoveExact(rawTopic.SubscriptionId, rawTopic); mTopicUriToTopic.TryRemoveExact(rawTopic.CustomizedSubscriptionId, rawTopic); rawTopic.Dispose(); } } } }
public RawTopicSubscriberBook(WampRawTopic <TMessage> rawTopic) { mRawTopic = rawTopic; }
public Subscription(WampRawTopic <TMessage> parent, IWampClientProxy <TMessage> client, RemoteObserver observer) { mParent = parent; mClient = client; mObserver = observer; }