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

TraceState() private method

Dumps the current state of the session queue.
private TraceState ( string context ) : void
context string
return void
        internal void TraceState(string context, params object[] args)
        {
            if ((Utils.TraceMask & Utils.TraceMasks.Information) == 0)
            {
                return;
            }

            StringBuilder buffer = new StringBuilder();

            lock (m_lock)
            {
                buffer.Append("PublishQueue ");
                buffer.AppendFormat(context, args);

                buffer.Append(", SessionId=");

                if (m_session != null)
                {
                    buffer.AppendFormat("{0}", m_session.Id);
                }
                else
                {
                    buffer.AppendFormat(", SessionId={0}", m_session.Id);
                }

                buffer.AppendFormat(", SubscriptionCount={0}", m_queuedSubscriptions.Count);
                buffer.AppendFormat(", RequestCount={0}", m_queuedRequests.Count);

                int readyToPublish = 0;

                for (int ii = 0; ii < m_queuedSubscriptions.Count; ii++)
                {
                    if (m_queuedSubscriptions[ii].ReadyToPublish)
                    {
                        readyToPublish++;
                    }
                }

                buffer.AppendFormat(", ReadyToPublishCount={0}", readyToPublish);

                int expiredRequests = 0;

                for (LinkedListNode<QueuedRequest> ii = m_queuedRequests.First; ii != null; ii = ii.Next)
                {
                    if (ii.Value.Deadline < DateTime.UtcNow)
                    {
                        expiredRequests++;
                    }
                }

                buffer.AppendFormat(", ExpiredCount={0}", expiredRequests);
            }

            Utils.Trace("{0}", buffer.ToString());
        }
        #endregion