Ejemplo n.º 1
0
        void CheckCollection(IMessagesCollection coll, params int[] exp)
        {
            Assert.AreEqual(exp.Length, coll.Count);
            int idx = 0;

            foreach (IndexedMessage m in coll.Forward(0, int.MaxValue))
            {
                Assert.AreEqual(idx, m.Index);
                Assert.AreEqual(exp[idx].ToString(), m.Message.Text.ToString());
                ++idx;
            }
            IEnumerable <IndexedMessage> e2 = coll.Reverse(int.MaxValue, -1);

            if (e2 != null)
            {
                idx = coll.Count - 1;
                foreach (IndexedMessage m in e2)
                {
                    Assert.AreEqual(idx, m.Index);
                    Assert.AreEqual(exp[idx].ToString(), m.Message.Text.ToString());
                    --idx;
                }
            }
        }
Ejemplo n.º 2
0
            public void HandleHangingFrames(IMessagesCollection messagesCollection)
            {
                if (!thereAreHangingEndFrames)
                {
                    return;
                }

                foreach (ThreadInfo t in threads.Values)
                {
                    t.ResetFrames();
                }

                foreach (IndexedMessage r in messagesCollection.Reverse(int.MaxValue, -1))
                {
                    ThreadInfo t = GetThreadInfo(r.Message.Thread);
                    r.Message.SetLevel(r.Message.Level + t.frames.Count);

                    var fe = r.Message as IFrameEnd;
                    if (fe != null && fe.Start == null)
                    {
                        t.frames.Push(r.Message);
                    }
                }
            }