#ifndef _RYL_AGENTSERVER_DISPATCH_H_ #define _RYL_AGENTSERVER_DISPATCH_H_ #include "RYL_ServerRequestKeeper.h" #include < Character/ModifyCharacter.h > #include < Network/Dispatch/RylServerDispatch.h > #include < Network/Dispatch/MultiDispatchStorage.h > #include < Stream/Buffer/BufferFactory.h > #include < Network/AgentServerParseData/RYL_AgentServerParseData.h > namespace PktAgentServer { struct PktAdminToolSetData; }; struct PktBase; class CBuffer; /*! \class CRylAgentServerDispatch Áß°è ¼­¹ö·ÎºÎÅÍ ¹ÞÀº ÆÐŶ ó¸® */ class CRylAgentServerDispatch : public CRylServerDispatch { public: CRylAgentServerDispatch(CSession& Session) : CRylServerDispatch(Session, 10){ ;} // ÇöÀç ¿¬°áÀÌ À¯ÁöµÇ¾îÀÖ´Â ¼­¹öÅ×À̺í static CMultiDispatch& GetDispatchTable(); virtual void Connected(void); // Á¢¼Ó À̺¥Æ® virtual void Disconnected(void); // Á¢¼Ó ²÷±è À̺¥Æ® virtual void Destroy(void); // ÆÄ±« À̺¥Æ® void SetDispatchInfo(long dwServerGroup, char* ServerName); // ¼­¹öÀÇ À̸§ ¹×ID¸¦ ÀÔ·ÂÇÔ CServerRequestKeeper& GetRequestKeeper() { return m_AgentRequestKeeper; } // ÇØ´ç ¼­¹öDispatchÀÇ RequestKeeperÀ» °¡Á®¿È const char* GetName() { return m_szServerName; } // ¼­¹öÀ̸§À» °¡Á®¿È bool Send(CBuffer* lpBuffer); bool CmdSysServerLogin(PktBase* lpPktBase); // ¼­¹ö·Î±×ÀÎ bool CmdAdminToolGetData(PktBase* lpPktBase); // ij¸¯ÅÍ µ¥ÀÌÅÍ °¡Á®¿À±â bool CmdAdminToolSetData(PktBase* lpPktBase); // ij¸¯ÅÍ µ¥ÀÌÅÍ ÀúÀåÇϱâ bool ServerLogin(unsigned long dwServerGroup); // ¼­¹ö ·Î±×ÀÎ ÆÐŶÀ» Àü¼Û CModifyCharacterMgr& GetModifyCharacterMgr() { return m_ModifyCharMgr; } // ÇØ´ç ¼­¹ö¿¡ ¿¡µðÆÃÁßÀΠij¸¯ÅÍ ¸ñ·ÏÀ» °¡Á®¿Â´Ù. bool UpdateCharacter(CModifyCharacter* lpChar, unsigned __int64 dwSerial, unsigned long dwUID, unsigned long dwCID, unsigned long dwRequestKey); void SetPaseSession(); // ¼­¹öÀÇ SessionÀ» ij¸¯ÅÍÁ¤º¸ Parser¿¡ ³Ñ°ÜÁØ´Ù ItemData::CDepositLock& GetDepositLock() { return m_DepositLock; } // â°í Àå±Ý ¸ñ·ÏÀ» °¡Á®¿Â´Ù. bool ItemQtyControlAck(PktBase* lpPktBase); bool GuildPositionAck(PktBase* lpPktBase); bool ConnectedAgentListAck(void); private: long m_dwServerGroup; ///< ¿¬°áÁßÀÎ ¼­¹ö±×·ì À妽º unsigned long m_dwServerID; ///< ¿¬°áÁßÀÎ ¼­¹ö ID char m_szServerName[256]; ///< ¿¬°áÁßÀÎ ¼­¹ö±×·ì¸í CServerRequestKeeper m_AgentRequestKeeper; CModifyCharacterMgr m_ModifyCharMgr; CAgentServerParseData m_ParseData; ItemData::CDepositLock m_DepositLock; CDefaultBufferFactory m_DefultBufferFactory; bool DispatchPacket(PktBase* lpPktBase); bool SEND_CLIENT_DATA(PktBase* lpPktBase, CServerRequestKeeper::RequestInfo& Info, unsigned char cType); bool PARSE_FINISH_GET_DATA(unsigned long dwRequestKey); bool SyncDeposit(unsigned long dwUID, unsigned long dwCId, CServerRequestKeeper::RequestInfo& Info); }; #endif