#pragma once //================================================================================================= // MasterServer Á¤º¸ °ü¸® // - MasterServer´Â Server·Î¼­ÀÇ °ü¸®Ã¼°è, À̰ÍÀº MasterServer°¡ ÇÏ´Â ¿ªÇÒ¿¡ ´ëÇÑ ¼¼ºÎ ±â´ÉµéÀ» // ¸ð¾ÆµÐ´Ù. //================================================================================================= #include // // class ServerSessionEx; typedef std::pair EXIT_SERVER_PAIR; typedef std::map EXIT_SERVER_MAP; typedef EXIT_SERVER_MAP::iterator EXIT_SERVER_MAP_IT; struct eLOGIC_VIOLATION_FIELD_INFO { static const DWORD RESERVED1 = 0; static const DWORD FORCED_DISCONNECT_CONTROL = 1; // static const DWORD MAX_INDEX = 31; }; typedef util::BitSetOperation LOGIC_VIOLATION_CONTOL_FLAGS; // // //enum eEXIT_TYPE //{ // eEXIT_NONE, // ¾ÈÇÏ´Â »óÅ //#ifdef _WHATTHEHELL_AGENTSHUTDOWN_20060524 // eEXIT_AGENTSTART, // Agent¼­¹ö Á¾·á ½ÃÀÛ // eEXIT_AGENTWAIT, // Á¾·á ÆÐŶ º¸³»°í ´ë±âÁß //#endif // eEXIT_GAMESTART, // Game¼­¹ö Á¾·á ½ÃÀÛ // eEXIT_GAMEWAIT, // Á¾·á ÆÐŶ º¸³»°í ´ë±âÁß // eEXIT_DBPROXY, // GameDBProxy Á¾·á ½ÃÀÛ // eEXIT_DBPROXYWAIT, // Á¾·á ÆÐŶ º¸³»°í ´ë±âÁß // eEXIT_END, // »¡·¡ ³¡~ //}; class PROCESS_TIMER_PROCESS; class MasterServerInfo { public: MasterServerInfo() {} ~MasterServerInfo() {} VOID Init( MasterServerEx* pMasterServer ) { m_pMasterServer = pMasterServer; m_bTransactionExitProcess = FALSE; m_wkExitProcess = 0; //m_wkTimerProcess = 0; //m_pMoneyTimer = NULL; m_dwMoneyTimer = 0; m_dwMoneyTimerInterval = 0; } // ¼­¹ö Á¾·á °ü·Ã BOOL IsTransactionExitProcess() { return m_bTransactionExitProcess; } WORK_KEY GetWorkKey4ExitProcess() { return m_wkExitProcess; } BOOL MakeServerExitList( SERVER_KEY IN skExitKey, EXIT_SERVER_MAP*& OUT pAgentServerList, EXIT_SERVER_MAP*& OUT pDBPServerList, EXIT_SERVER_MAP*& OUT pServerList ); BOOL RegisterServerExitProcess( EXIT_SERVER_MAP*& OUT pAgentServerList, EXIT_SERVER_MAP*& OUT pDBPServerList, EXIT_SERVER_MAP*& OUT pServerList ); VOID ExitProcessTransaction( BOOL bEnable ) { m_bTransactionExitProcess = bEnable; } VOID StartTimerProcess( DWORD dwInterval ); //util::ITimer* GetMoneyTimer() { return m_pMoneyTimer; } VOID Update(); public: // BOOL SendMX_FUNCRESTRICT_RELOAD_REQ( MasterServerEx* pMasterServer ); BOOL SendGM_OPERATION_FUNCRESTRICT_CMD( MasterServerEx* pMasterServer ); BOOL SendGM_OPERATION_STATISTICS_REQ( MasterServerEx* pMasterServer ); private: WORK_LOAD_CONTAINER_SESSION_WORK& GetWorkLoadContainer() { return m_WorkLoad; } private: MasterServerEx* m_pMasterServer; BOOL m_bTransactionExitProcess; WORK_KEY m_wkExitProcess; //WORK_KEY m_wkTimerProcess; //util::ITimer* m_pMoneyTimer; DWORD m_dwMoneyTimer; DWORD m_dwMoneyTimerInterval; WORK_LOAD_CONTAINER_SESSION_WORK m_WorkLoad; };