public void On_Match_Chat_Channel_Creation_Response( EMatchInstanceID match_id, CCreateChatChannelResponseServerMessage response_msg )
        {
            CServerMatchInstance match_instance = Get_Match_Instance( match_id );
            if ( match_instance == null )
            {
                if ( response_msg.ChannelID != EChannelID.Invalid )
                {
                    CDestroyChatChannelServerMessage destroy_channel_message = new CDestroyChatChannelServerMessage( response_msg.ChannelID );
                    CServerMessageRouter.Send_Message_To_Chat_Server( destroy_channel_message );
                }

                return;
            }

            // Chat creation and joining should never fail
            if ( response_msg.Error != EChannelCreationError.None )
            {
                Shutdown_Match( match_id, EMatchDestroyedReason.Chat_Channel_Creation_Failure );
                return;
            }

            match_instance.MatchChannel = response_msg.ChannelID;
            match_instance.Perform_Match_Channel_Joins();
        }
 private static void On_Observer_Chat_Channel_Creation_Response( EMatchInstanceID match_id, CCreateChatChannelResponseServerMessage response_msg )
 {
     CServerMatchInstanceManager.Instance.On_Observer_Chat_Channel_Creation_Response( match_id, response_msg );
 }
 // Private interface
 // Callbacks
 // Channel Creation
 private static void On_Lobby_Chat_Channel_Creation_Response( ELobbyID lobby_id, EPersistenceID player_id, CCreateChatChannelResponseServerMessage response_msg )
 {
     CServerLobbyManager.Instance.On_Lobby_Chat_Channel_Creation_Response( lobby_id, player_id, response_msg );
 }
        public void On_Lobby_Chat_Channel_Creation_Response( ELobbyID lobby_id, EPersistenceID player_id, CCreateChatChannelResponseServerMessage response_msg )
        {
            CServerLobby lobby = Get_Lobby( lobby_id );
            if ( lobby == null )
            {
                if ( response_msg.ChannelID != EChannelID.Invalid )
                {
                    CDestroyChatChannelServerMessage destroy_channel_message = new CDestroyChatChannelServerMessage( response_msg.ChannelID );
                    CServerMessageRouter.Send_Message_To_Chat_Server( destroy_channel_message );
                }

                return;
            }

            CLog.Log( ELoggingChannel.Lobby, ELogLevel.Medium, String.Format( "Lobby {0} chat channel {1} creation result = {2}.",
                                                                                                    Get_Lobby_Log_Description( lobby_id ),
                                                                                                    response_msg.ChannelName,
                                                                                                    response_msg.Error.ToString() ) );

            if ( response_msg.Error != EChannelCreationError.None )
            {
                Shutdown_Lobby( lobby_id, ELobbyDestroyedReason.Chat_Channel_Creation_Failure );
                return;
            }

            lobby.Initialize_Chat_Channel( response_msg.ChannelID );
            lobby.ConnectedMemberIDs.Apply( pid => CAsyncBackendOperations.Player_Join_Lobby_Channel( pid, lobby_id, lobby.ChatChannel ) );
        }