Microsoft.AspNet.SignalR.Messaging.Topic.RemoveSubscription C# (CSharp) Method

RemoveSubscription() public method

public RemoveSubscription ( ISubscription subscription ) : void
subscription ISubscription
return void
        public void RemoveSubscription(ISubscription subscription)
        {
            if (subscription == null)
            {
                throw new ArgumentNullException("subscription");
            }

            try
            {
                SubscriptionLock.EnterWriteLock();

                MarkUsed();
              
                Subscriptions.Remove(subscription);
               

                if (Subscriptions.Count == 0)
                {
                    // HasSubscriptions -> NoSubscriptions
                    Interlocked.CompareExchange(ref State,
                                                TopicState.NoSubscriptions,
                                                TopicState.HasSubscriptions);
                }
            }
            finally
            {
                SubscriptionLock.ExitWriteLock();
            }
        }
    }

Usage Example

コード例 #1
0
        public void TopicStateNoSubscriptions()
        {
            var topic = new Topic(100, TimeSpan.Zero);
            var mock = new Mock<ISubscription>();
            mock.Setup(m => m.Identity).Returns("1");

            topic.AddSubscription(mock.Object);
            topic.RemoveSubscription(mock.Object);

            Assert.Equal(TopicState.NoSubscriptions, topic.State);
        }
All Usage Examples Of Microsoft.AspNet.SignalR.Messaging.Topic::RemoveSubscription