示例#1
0
        public void enqueueMessage(ICommunicationMessage msg)
        {
            ICommunicationMessage parsed = null;

            if (m_Interpreter != null)
            {
                parsed = m_Interpreter.ImmediatelyInterpret(msg);

                if (parsed == null)
                {
                    if (m_Interpreter.DelayedInterpret(msg) == true)
                    {
                        return;
                    }
                    else
                    {
                        lock (m_Messages)
                            m_Messages.Enqueue(msg);
                    }
                }
                else
                {
                    lock (m_Messages)
                        m_Messages.Enqueue(parsed);
                }
            }
            else
            {
                lock (m_Messages)
                    m_Messages.Enqueue(msg);
            }

            m_SignalNewMessage.Set();
        }
示例#2
0
        public void enqueueMessage(ICommunicationMessage msg)
        {
            ICommunicationMessage parsed   = null;
            ICommunicationMessage tobesent = null;

            if (m_Interpreter != null)
            {
                parsed = m_Interpreter.ImmediatelyInterpret(msg);

                if (parsed == null)
                {
                    if (m_Interpreter.DelayedInterpret(msg) == true)
                    {
                        return;
                    }
                    else
                    {
                        tobesent = msg;
                        //lock (m_Messages)
                        //    m_Messages.Enqueue(msg);
                    }
                }
                else
                {
                    tobesent = parsed;
                    //lock (m_Messages)
                    //    m_Messages.Enqueue(parsed);
                }
            }
            else
            {
                tobesent = msg;
                //lock (m_Messages)
                //    m_Messages.Enqueue(msg);
            }

            if (tobesent != null)
            {
                tobesent.SetValue("LAST_SEQ_ID", m_last_seq_id);
                m_last_seq_id = tobesent.SeqID;

                _sendMessage(tobesent);
            }

            //m_SignalNewMessage.Set();
        }