GameFramework.UserServer.HandleQuitRoom C# (CSharp) Method

HandleQuitRoom() private method

private HandleQuitRoom ( NodeMessage msg, int handle, uint seq ) : void
msg NodeMessage
handle int
seq uint
return void
        private void HandleQuitRoom(NodeMessage msg, int handle, uint seq)
        {
            GameFrameworkMessage.NodeMessageWithGuid headerMsg = msg.m_NodeHeader as GameFrameworkMessage.NodeMessageWithGuid;
            if (null != headerMsg) {
                GameFrameworkMessage.QuitRoom protoMsg = msg.m_ProtoData as GameFrameworkMessage.QuitRoom;
                if (null != protoMsg) {
                    ulong guid = headerMsg.m_Guid;
                    bool is_quit_room = protoMsg.m_IsQuitRoom;
                    byte[] originalMsgData = msg.m_OriginalMsgData;

                    UserInfo user = UserServer.Instance.UserProcessScheduler.GetUserInfo(guid);
                    if (user != null) {
                        if (user.CurrentState == UserState.Room) {
                            UserServer.Instance.ForwardToBigworld(user, originalMsgData);
                        } else {
                            user.CurrentState = UserState.Online;
                        }
                        LogSys.Log(LOG_TYPE.INFO, "QuitRoom Guid {0} state {1}", guid, user.CurrentState);
                    }
                }
            }
        }