#pragma once #include #include #include class UserSession; class ServerSession; class PacketHandler : public Singleton { public: PacketHandler(void); ~PacketHandler(void); public: typedef VOID (*fnUserHandler)( UserSession* pSession, MSG_BASE* pMsg, int nSize ); typedef VOID (*fnHandler)( ServerSession* pSession, MSG_BASE* pMsg, int nSize ); public: BOOL RegisterHandler(); //Çڵ鷯¸¦ µî·Ï½ÃŲ´Ù. ÀÌ Å¬·¡½º°¡ »ý¼ºµÉ¶§.. Çϵµ·Ï ÇÏÀÚ. BOOL ParserPacket_SM( UserSession* pSession, MSG_BASE* pMsg, int nSize ); BOOL ParserPacket_SA( ServerSession* pSession, MSG_BASE* pMsg, int nSize ); BOOL ParserPacket_SMA( ServerSession* pSession, MSG_BASE* pMsg, int nSize ); private: BOOL RegisterHandler_SM(); BOOL RegisterHandler_SA(); BOOL RegisterHandler_SMA(); BOOL AddHandler_SM( BYTE byCategory, BYTE byMsgType, fnUserHandler pHandler ); BOOL AddHandler_SA( BYTE byCategory, BYTE byMsgType, fnHandler pHandler ); BOOL AddHandler_SMA( BYTE byCategory, BYTE byMsgType, fnHandler pHandler ); public: struct FUNC_SM : public BASE_FUNC //¸Þ´ÏÀú¿¡¼­ ¼­¹ö·Î ¿À´Â ÆÐŶµéÀÇ Çڵ鷯 ±âº»Çü. { fnUserHandler m_fnHandler; }; struct FUNC_SA : public BASE_FUNC //Agent¿¡¼­ ¼­¹ö·Î ¿À´Â ÆÐŶµéÀÇ Çڵ鷯 ±âº»Çü. { fnHandler m_fnHandler; }; struct FUNC_SMA : public BASE_FUNC //¸¶½ºÅÍ¿¡¼­ ¼­¹ö·Î ¿À´Â ÆÐŶµéÀÇ Çڵ鷯 ±âº»Çü. { fnHandler m_fnHandler; }; private: FunctionMap* m_pFunctionMapSM; FunctionMap* m_pFunctionMapSA; FunctionMap* m_pFunctionMapSMA; };