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