示例#1
0
        /// <summary>
        /// Read a message from the pipe.
        /// </summary>
        /// <param name="msg">a reference to a Msg to put the message into</param>
        /// <returns>true if the Msg is successfully sent</returns>
        public PullMsgResult PullMsg(ref Msg msg)
        {
            if (m_pipe == null || !m_pipe.Read(ref msg))
            {
                return(PullMsgResult.Empty);
            }
            m_incompleteIn = msg.HasMore;

            return(PullMsgResult.Ok);
        }
示例#2
0
        /// <summary>
        /// Read a message from the pipe.
        /// </summary>
        /// <param name="msg">a reference to a Msg to put the message into</param>
        /// <returns>true if the Msg is successfully sent</returns>
        public virtual bool PullMsg(ref Msg msg)
        {
            // First message to send is identity
            if (!m_identitySent)
            {
                msg.InitPool(m_options.IdentitySize);
                msg.Put(m_options.Identity, 0, m_options.IdentitySize);
                m_identitySent = true;
                m_incompleteIn = false;

                return(true);
            }

            if (m_pipe == null || !m_pipe.Read(ref msg))
            {
                return(false);
            }
            m_incompleteIn = msg.HasMore;

            return(true);
        }