Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public RawTopicSubscriberBook(WampRawTopic <TMessage> rawTopic)
 {
     mRawTopic = rawTopic;
 }
Ejemplo n.º 4
0
 public Subscription(WampRawTopic <TMessage> parent, IWampClientProxy <TMessage> client, RemoteObserver observer)
 {
     mParent   = parent;
     mClient   = client;
     mObserver = observer;
 }