//============================================================================================================================= /// PortalServer class /** @author Kim Min Wook < taiyo@webzen.com > @since 2006. 8. 22 @remark - Æ÷Å»¼­¹öÀÇ ÇÁ·¹ÀÓ ¿öÅ© @note - Á¶°Ç : ½Ì±Û ÀνºÅϽº @history - */ //============================================================================================================================= #pragma once #include #include #include #include "AgentServerSession.h" #include "DBProxyServerSession.h" #include "GameServerSession.h" #include "MasterServerSession.h" #include "PortalRankingManager.h" class ScriptParserManager; class PortalServer : public ServerFrame { public: static NetworkObject * DoAllocServerSession(); static VOID DoFreeServerSession( NetworkObject * pNetObject ); static VOID DoFreeConnectSession( NetworkObject * pNetObject ){__UNUSED(pNetObject);} static NetworkObject * DoAllocClient_NotUsed(){ return NULL; } static VOID DoFreeClient_NotUsed( NetworkObject * pNetObject ){__UNUSED(pNetObject);} static VOID DoFreeConnect_NotUsed( NetworkObject * pNetObject ){__UNUSED(pNetObject);} public: PortalServer(); virtual ~PortalServer(){} virtual eSERVER_TYPE GetServerType() { return PORTAL_SERVER; } BOOL SendDBProxy( MSG_BASE * pMsg, WORD wSize ); BOOL IsDBProxyConnected(); BOOL SendMaster( MSG_BASE * pMsg, WORD wSize ); BOOL IsMasterConnected(); BOOL ConnectTo( eSERVER_TYPE type ); ServerSession * GetSession( eSERVER_TYPE type ); protected: virtual BOOL Init(); virtual BOOL Update( DWORD tick ); virtual void Release(); virtual ServerSession * AllocServerSession( eSERVER_TYPE ); virtual void FreeServerSession( ServerSession * ); virtual BOOL KeyEvent( CHAR ch );; BOOL Init_ScriptData( BOOL bReadFromFile ); BOOL InitializeLogger(); public: static VOID StartServer(); inline ePHASE_SHIFT GetPhaseStatus() { return m_PHASE_SHIFT; } inline VOID SetPhaseStatus( ePHASE_SHIFT phase ) { m_PHASE_SHIFT = phase; } private: ePHASE_SHIFT m_PHASE_SHIFT; private: util::CMemoryPoolFactory m_AgentServerSessionPool; util::CMemoryPoolFactory m_DBProxyServerSessionPool; util::CMemoryPoolFactory m_GameServerSessionPool; util::CMemoryPoolFactory m_TempServerSessionPool; util::CMemoryPoolFactory m_MasterServerSessionPool; DBProxyServerSession * m_pDBProxySession; MasterServerSession * m_pMasterSession; int m_WEEKDAY_NUMBER_OF_RANKING_PERIOD; ScriptParserManager* m_pPortalScriptParserManager; }; extern PortalServer g_PortalServer;