Beispiel #1
0
 public void SetProcessDied()
 {
     m_eProcessState   = PROCESS_STATE.DIED;
     m_eServableState  = SERVABLE_STATE.INACTIVE;
     m_nProcessID      = 0;
     m_nCurPlayerCount = 0;
 }
Beispiel #2
0
        private bool OnGetServerInfoRes(NetCommand command)
        {
            byte nServerCount;

            if (command.ReadByte(out nServerCount) == false)
            {
                return(false);
            }

            TRANS_SERVERINFONODE[] arrServerInfo = new TRANS_SERVERINFONODE[nServerCount];
            for (int i = 0; i < nServerCount; ++i)
            {
                if (command.ReadString(out arrServerInfo[i].strServerName) == false)
                {
                    return(false);
                }
                if (command.ReadByte(out arrServerInfo[i].nProcessState) == false)
                {
                    return(false);
                }
                if (command.ReadByte(out arrServerInfo[i].nServableState) == false)
                {
                    return(false);
                }
                if (command.ReadBoolean(out arrServerInfo[i].bRevivable) == false)
                {
                    return(false);
                }
                if (command.ReadInt32(out arrServerInfo[i].nCurServerPlayerCount) == false)
                {
                    return(false);
                }
            }

            UInt64 nSessionID = command.SessionID;

            MachineInfo refMachineInfo = m_refServerMonitorClient.refMachineInfoMgr.Find(nSessionID);

            if (null == refMachineInfo)
            {
                return(false);
            }

            for (int i = 0; i < nServerCount; ++i)
            {
                string         strServerName         = arrServerInfo[i].strServerName;
                PROCESS_STATE  eProcessState         = (PROCESS_STATE)arrServerInfo[i].nProcessState;
                SERVABLE_STATE eServableState        = (SERVABLE_STATE)arrServerInfo[i].nServableState;
                bool           bRevivable            = arrServerInfo[i].bRevivable;
                int            nCurServerPlayerCount = arrServerInfo[i].nCurServerPlayerCount;

                m_refServerMonitorClient.UpdateServerInfo(refMachineInfo.GetName(), strServerName, eProcessState, eServableState, bRevivable, nCurServerPlayerCount);
            }

            m_refServerMonitorClient.UpdateMachinePlayerCount(refMachineInfo.GetName());

            return(true);
        }
Beispiel #3
0
        public void SetProcessTerminated()
        {
            m_eProcessState   = PROCESS_STATE.TERMINATED;
            m_eServableState  = SERVABLE_STATE.INACTIVE;
            m_nProcessID      = 0;
            m_nCurPlayerCount = 0;

            ResetEventSignal();
        }
        public bool Update(float fDelta)
        {
            if (false == m_rgltDelayToCheck.IsReady(fDelta))
            {
                return(false);
            }

            bool bIsChangineState = false;

            LinkedListNode <ServerInfo> node = m_refServerInfoMgr.ServerInfoList.First;

            for (; node != null; node = node.Next)
            {
                ServerInfo refServerInfo = node.Value;

                if (refServerInfo.ProcessState != PROCESS_STATE.RUNNING)
                {
                    continue;
                }

                SERVABLE_STATE eServableState = (refServerInfo.IsServable ? SERVABLE_STATE.ACTIVE : SERVABLE_STATE.INACTIVE);

                if (refServerInfo.ServableState == eServableState)
                {
                    continue;
                }

                if (SERVABLE_STATE.INACTIVE == refServerInfo.ServableState &&
                    SERVABLE_STATE.ACTIVE == eServableState)
                {
                    m_refMinitoringLoggerMgr.Write(refServerInfo.ServerName, refServerInfo.WorldID, refServerInfo.ServerID, LogID.SERVER_ACTIVE);
                }
                else if (SERVABLE_STATE.ACTIVE == refServerInfo.ServableState &&
                         SERVABLE_STATE.INACTIVE == eServableState)
                {
                    m_refMinitoringLoggerMgr.Write(refServerInfo.ServerName, refServerInfo.WorldID, refServerInfo.ServerID, LogID.SERVER_INACTIVE);
                }

                refServerInfo.SetServableState(eServableState);
                bIsChangineState = true;
            }

            return(bIsChangineState);
        }
        public NODE_ICON GetServerIcon(PROCESS_STATE eProcessState, SERVABLE_STATE eServableState, bool bRevivable)
        {
            NODE_ICON eServerIcon = NODE_ICON.ICON_INDEX_NONE;

            if (PROCESS_STATE.DIED == eProcessState ||
                PROCESS_STATE.NOUPDATE == eProcessState)
            {
                eServerIcon = NODE_ICON.ICON_INDEX_SERVER_ERROR;
            }
            else if (PROCESS_STATE.TERMINATING == eProcessState ||
                     PROCESS_STATE.STARTING == eProcessState)
            {
                eServerIcon = NODE_ICON.ICON_INDEX_SERVER_PROCESS_CHANGING;
            }
            else if (PROCESS_STATE.TERMINATED == eProcessState)
            {
                eServerIcon = NODE_ICON.ICON_INDEX_SERVER_BAD;
            }
            else if (PROCESS_STATE.RUNNING == eProcessState)
            {
                if (SERVABLE_STATE.INACTIVE == eServableState)
                {
                    return(NODE_ICON.ICON_INDEX_SERVER_INACTIVE);
                }

                if (bRevivable)
                {
                    eServerIcon = NODE_ICON.ICON_INDEX_SERVER_FINE;
                }
                else
                {
                    eServerIcon = NODE_ICON.ICON_INDEX_SERVER_FINE_NOT_REVIVE;
                }
            }
            else if (PROCESS_STATE.STARTING == eProcessState)
            {
                eServerIcon = NODE_ICON.ICON_INDEX_SERVER_PROCESS_CHANGING;
            }
            return(eServerIcon);
        }
Beispiel #6
0
        public void UpdateServerInfo(string strMachineName, string strServerName, PROCESS_STATE eProcessState, SERVABLE_STATE eServableState, bool bRevivable, int nCurServerPlayerCount)
        {
            ServerInfoMgr refServerInfoMgr = m_machineInfoMgr.GetServerInfoMgr(strMachineName);

            if (null == refServerInfoMgr)
            {
                return;
            }

            ServerInfo refServerInfo = refServerInfoMgr.Find(strServerName);

            if (null == refServerInfo)
            {
                return;
            }

            refServerInfo.SetProcessState(eProcessState);
            refServerInfo.SetServableState(eServableState);
            refServerInfo.bRevivable     = bRevivable;
            refServerInfo.CurPlayerCount = nCurServerPlayerCount;

            m_refView.refTreeViewCntroller.SetServerIcon(strMachineName, strServerName, eProcessState, eServableState, bRevivable);

            if (refServerInfo.GetServerType() == SERVER_TYPE.SERVER_GAME)
            {
                m_refView.refTreeViewCntroller.UpdateServerNodeExpansionInfo(strMachineName, strServerName, nCurServerPlayerCount);
            }

            if (m_refView.refTreeViewCntroller.IsSelectedServerNode() == false)
            {
                return;
            }

            string strSelectedMachineName;
            string strSelectedServerName;

            m_refView.refTreeViewCntroller.GetSelectedMachineName(out strSelectedMachineName);
            m_refView.refTreeViewCntroller.GetSelectedServerName(out strSelectedServerName);

            if (strSelectedMachineName.Length == 0 ||
                strSelectedServerName.Length == 0 ||
                strSelectedMachineName.Equals(strMachineName) == false ||
                strSelectedServerName.Equals(strServerName) == false)
            {
                return;
            }

            UpdateView_SelectedServerInfo(strMachineName, strServerName);
            m_refView.UpdateButtonEnableState();
        }
Beispiel #7
0
 public void SetServableState(SERVABLE_STATE eState)
 {
     m_eServableState = eState;
 }
Beispiel #8
0
 public void SetProcessNoUpdate()
 {
     m_eProcessState  = PROCESS_STATE.NOUPDATE;
     m_eServableState = SERVABLE_STATE.INACTIVE;
 }
Beispiel #9
0
 public void SetProcessTerminating()
 {
     m_eProcessState   = PROCESS_STATE.TERMINATING;
     m_eServableState  = SERVABLE_STATE.INACTIVE;
     m_nCurPlayerCount = 0;
 }
        public void SetServerIcon(string strMachineName, string strServerName, PROCESS_STATE eProcessState, SERVABLE_STATE eServableState, bool bRevivable)
        {
            TreeNode tnodeServer = FindServerNode(strMachineName, strServerName);

            if (tnodeServer == null)
            {
                return;
            }

            NODE_ICON eServerIcon = m_treeIconSelector.GetServerIcon(eProcessState, eServableState, bRevivable);

            tnodeServer.ImageIndex         = (int)eServerIcon;
            tnodeServer.SelectedImageIndex = (int)eServerIcon;
        }