Opc.Ua.Server.SessionPublishQueue.Remove C# (CSharp) Method

Remove() public method

Removes a subscription from the publish queue.
public Remove ( Subscription subscription ) : void
subscription Subscription
return void
        public void Remove(Subscription subscription)
        {
            if (subscription == null) throw new ArgumentNullException("subscription");

            lock (m_lock)
            {
                // remove the subscription from the queue.
                for (int ii = 0; ii < m_queuedSubscriptions.Count; ii++)
                {
                    if (Object.ReferenceEquals(m_queuedSubscriptions[ii].Subscription, subscription))
                    {
                        m_queuedSubscriptions.RemoveAt(ii);
                        break;
                    }
                }

                // remove any outstanding publishes.
                if (m_queuedSubscriptions.Count == 0)
                {
                    while (m_queuedRequests.Count > 0)
                    {
                        QueuedRequest request = m_queuedRequests.First.Value;
                        request.Error = StatusCodes.BadNoSubscription;
                        request.Set();
                        m_queuedRequests.RemoveFirst();
                    }
                }
                
                // TraceState("SUBSCRIPTION REMOVED");
            }
        }