45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <FunctionMap.h>
|
|
#include <Singleton.h>
|
|
#include <PacketStruct.h>
|
|
|
|
class UpdateServerSession;
|
|
class UpdateToolSession;
|
|
|
|
class PacketHandler : public Singleton<PacketHandler>
|
|
{
|
|
public:
|
|
PacketHandler(void);
|
|
~PacketHandler(void);
|
|
|
|
public:
|
|
typedef VOID (*fnToolHandler)( UpdateToolSession* pSession, MSG_BASE* pMsg, int nSize );
|
|
typedef VOID (*fnHandler)( UpdateServerSession* pSession, MSG_BASE* pMsg, int nSize );
|
|
|
|
public:
|
|
BOOL RegisterHandler(); //핸들러를 등록시킨다. 이 클래스가 생성될때.. 하도록 하자.
|
|
BOOL ParserPacket_AT( UpdateToolSession* pSession, MSG_BASE* pMsg, int nSize );
|
|
BOOL ParserPacket_SA( UpdateServerSession* pSession, MSG_BASE* pMsg, int nSize );
|
|
|
|
private:
|
|
BOOL RegisterHandler_AT();
|
|
BOOL RegisterHandler_SA();
|
|
BOOL AddHandler_AT( BYTE byCategory, BYTE byMsgType, fnToolHandler pHandler );
|
|
BOOL AddHandler_SA( BYTE byCategory, BYTE byMsgType, fnHandler pHandler );
|
|
|
|
public:
|
|
struct FUNC_AT : public BASE_FUNC //TOOL에서 Agent로 오는 패킷들의 핸들러 기본형.
|
|
{
|
|
fnToolHandler m_fnHandler;
|
|
};
|
|
struct FUNC_SA : public BASE_FUNC //TOOL에서 Agent로 오는 패킷들의 핸들러 기본형.
|
|
{
|
|
fnHandler m_fnHandler;
|
|
};
|
|
|
|
private:
|
|
FunctionMap* m_pFunctionMapAT;
|
|
FunctionMap* m_pFunctionMapSA;
|
|
};
|