ReleaseMessage() private method

private ReleaseMessage ( NetIncomingMessage msg ) : void
msg NetIncomingMessage
return void
        internal void SetStatus(NetConnectionStatus status, NetConnectionResult reason)
        {
            // user or library thread

            m_status = status;

            if (m_status == NetConnectionStatus.Connected)
            {
                m_timeoutDeadline = NetTime.Now + m_peerConfiguration.m_connectionTimeout;
                m_peer.LogVerbose("Timeout deadline initialized to  " + m_timeoutDeadline);
            }

            if (m_peerConfiguration.IsMessageTypeEnabled(NetIncomingMessageType.StatusChanged))
            {
                if (m_outputtedStatus != status)
                {
                    NetIncomingMessage info = m_peer.CreateIncomingMessage(NetIncomingMessageType.StatusChanged, 1);
                    info.m_senderConnection = this;
                    info.m_senderEndPoint   = m_remoteEndPoint;
                    info.Write((byte)m_status);
                    info.Write((byte)reason);
                    m_peer.ReleaseMessage(info);
                    m_outputtedStatus = status;
                }
            }
            else
            {
                // app dont want those messages, update visible status immediately
                m_outputtedStatus = m_status;
                m_visibleStatus   = m_status;
            }
        }
Esempio n. 2
0
        internal void SetStatus(NetConnectionStatus status, string reason)
        {
            // user or library thread

            if (status == m_status)
            {
                return;
            }
            m_status = status;
            if (reason == null)
            {
                reason = string.Empty;
            }

            if (m_status == NetConnectionStatus.Connected)
            {
                m_timeoutDeadline = (float)NetTime.Now + m_peerConfiguration.m_connectionTimeout;
                m_peer.LogVerbose("Timeout deadline initialized to  " + m_timeoutDeadline);
            }

            if (m_peerConfiguration.IsMessageTypeEnabled(NetIncomingMessageType.StatusChanged))
            {
                NetIncomingMessage info = m_peer.CreateIncomingMessage(NetIncomingMessageType.StatusChanged, 4 + reason.Length + (reason.Length > 126 ? 2 : 1));
                info.m_senderConnection = this;
                info.m_senderEndpoint   = m_remoteEndpoint;
                info.Write((byte)m_status);
                info.Write(reason);
                m_peer.ReleaseMessage(info);
            }
            else
            {
                // app dont want those messages, update visible status immediately
                m_visibleStatus = m_status;
            }
        }
Esempio n. 3
0
        internal void SetStatus(NetConnectionStatus status, NetReason reason)
        {
            // user or library thread

            m_status = status;

            if (m_status == NetConnectionStatus.Connected)
            {
                m_timeoutDeadline = NetTime.Now + m_peerConfiguration.m_connectionTimeout;
                m_peer.LogVerbose("Timeout deadline initialized to  " + m_timeoutDeadline);
            }

            if (m_peerConfiguration.IsMessageTypeEnabled(NetIncomingMessageType.StatusChanged))
            {
                if (m_outputtedStatus != status)
                {
                    var outgoingMessage = reason.Message;
                    var info            = m_peer.CreateIncomingMessage(NetIncomingMessageType.StatusChanged, 1 + reason.Length);
                    info.Write((byte)m_status);
                    if (outgoingMessage != null)
                    {
                        Buffer.BlockCopy(outgoingMessage.m_data, 0, info.m_data, 1, outgoingMessage.LengthBytes);
                        info.m_bitLength = outgoingMessage.m_bitLength;
                    }
                    else
                    {
                        info.Write(reason.Text);
                    }

                    info.m_senderConnection = this;
                    info.m_senderEndPoint   = m_remoteEndPoint;
                    m_peer.ReleaseMessage(info);
                    m_outputtedStatus = status;
                }
            }
            else
            {
                // app dont want those messages, update visible status immediately
                m_outputtedStatus = m_status;
                m_visibleStatus   = m_status;
            }
        }