private void Handle_Network_Message( CWrappedNetworkMessage message )
 {
     if ( !CNetworkMessageHandler.Instance.Try_Handle_Message( message ) )
     {
         throw new CApplicationException( String.Format( "Encountered an unhandlable message: {0}", message.Message.MessageType.ToString() ) );
     }
 }
        private void Handle_Network_Message( CWrappedNetworkMessage message )
        {
            CLog.Log( ELoggingChannel.Logic, ELogLevel.Medium, "Logic processing network message " + message.GetType().Name );

            if ( !CNetworkMessageHandler.Instance.Try_Handle_Message( message ) )
            {
                throw new CApplicationException( String.Format( "Encountered an unhandlable message: {0}", message.Message.ToString() ) );
            }
        }
        protected void Send_Message( CWrappedNetworkMessage message )
        {
            CLog.Log( ELoggingChannel.Network, ELogLevel.Medium, String.Format( "Sending network message {0}", message.Message.GetType().Name ) );
            CLog.Log( ELoggingChannel.Network, ELogLevel.High, String.Format( "		Internal state: {0}", message.Message.ToString() ) );

            m_RequestResponseManager.Process_Outgoing_Message( message.Message );
            if ( message.ID == ESessionID.Loopback )
            {
                On_Message_Receive( message.Message, message.ID );
            }
            else
            {
                CConnection connection = Get_Connection( message.ID );
                if ( connection != null )
                {
                    connection.Send_Message( message.Message );
                }
                else if ( NotifyOnSendFailure )
                {
                    Add_Event( ENetworkEvent.Unable_To_Send_Message, ESessionID.Invalid );
                }
            }
        }