예제 #1
0
        private ParserParagraph CreateMessageQueueCommon(string aName, DMsgQueue aQueue)
        {
            ParserParagraph para = new ParserParagraph(aName);
            //
            ParserLine l1 = ParserLine.NewSymFormat("StartOfPool %08x, EndOfPool %08x\r\n");

            l1.SetTargetProperties(aQueue.PoolInfo, "Start", "End");
            //
            ParserLine l2 = ParserLine.NewSymFormat("FirstFullSlot %08x, FirstFreeSlot %08x\r\n");

            l2.SetTargetProperties(aQueue.SlotInfo, "FirstFull", "FirstFree");
            //
            ParserLine l3 = ParserLine.NewSymFormat("MaxMsgLength %d\r\n");

            l3.SetTargetProperties(aQueue, "MaxMessageLength");
            //
            ParserLine l4 = ParserLine.NewSymFormat("MessageQueue state %S");

            l4.Tag = aQueue;
            l4.SetTargetMethod(this, "SetMessageQueueState");
            //
            ParserLine l5 = ParserLine.NewSymFormat("ThreadWaitingForData %08x, DataAvailStatPtr %08x\r\n");

            l5.SetTargetProperties(new object[] { aQueue.WaitData, aQueue.WaitData.RequestStatus }, "WaitingThreadAddress", "Address");
            //
            ParserLine l6 = ParserLine.NewSymFormat("ThreadWaitingForSpace %08x, SpaceAvailStatPtr %08x\r\n");

            l6.SetTargetProperties(new object[] { aQueue.WaitSpace, aQueue.WaitSpace.RequestStatus }, "WaitingThreadAddress", "Address");

            para.Add(l1, l2, l3, l4, l5, l6);
            return(para);
        }
예제 #2
0
        public void SetMessageQueueState(ParserLine aLine, ParserFieldName aFieldName, string aState)
        {
            System.Diagnostics.Debug.Assert(aLine.Tag is DMsgQueue);
            DMsgQueue queue = (DMsgQueue)aLine.Tag;

            DMsgQueue.TQueueState state = DMsgQueue.StateByString(aState);
            queue.State = state;
        }
예제 #3
0
        public void CreateMonitorMessageQueue(ParserEngine aEngine, string aName, DMsgQueue aQueue)
        {
            ParserParagraph para0 = base.CreateMonitorObjectParagraph(aName, aQueue);

            aEngine.Add(para0);
            ParserParagraph para1 = CreateMessageQueueCommon(aName, aQueue);

            aEngine.Add(para1);
        }