Files
mir_server/server/NameServer/NSConnection.h
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

49 lines
1.7 KiB
C++

#pragma once
class CNameServer;
class CNameServerClientConnection :
public CCustomJXServerClientSocket
{
friend class CNameServer;
typedef VOID (CNameServerClientConnection::*OnHandleSockPacket)(CDataPacketReader &packet);
public:
typedef CCustomJXServerClientSocket Inherited;
public:
CNameServerClientConnection(CNameServer *lpNameServer);
~CNameServerClientConnection();
protected:
//当长时间没有通信后发送保持连接的消息
//VOID SendKeepAlive();
//覆盖处理断开连接的回调
VOID OnDisconnected();
//处理套接字错误
VOID OnError(INT errorCode);
private:
//分派数据包处理
VOID OnDispatchRecvPacket(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader &inPacket);
//验证服务器注册数据
bool OnValidateRegData(const jxSrvDef::PSERVER_REGDATA pRegData);
//各个通信数据包处理函数
VOID DefaultHandle(CDataPacketReader &inPacket);
VOID AllocCrossServerCharIdHandle(CDataPacketReader &inPacket);
VOID AllocCharIdHandle(CDataPacketReader &inPacket);
VOID AllocGuildIdHandle(CDataPacketReader &inPacket);
VOID RenameCharHandle(CDataPacketReader &inPacket);
VOID RenameGuildHandle(CDataPacketReader &inPacket);
//申请角色、帮会名称和ID通用的处理函数
VOID CommAllocIdProc(CDataPacketReader &inPacket, int nRetCmd, LPCSTR sSQLCall);
//重命名角色、帮会的通用处理函数
VOID CommRenameProc(CDataPacketReader &inPacket, int nRetCmd, LPCSTR sSQLCall);
private:
CNameServer *m_pNameServer; //所属名称服务器
CSQLConenction *m_pSQLConnection; //使用的数据库连接对象
//定义结构化网络数据包处理函数列表
static const OnHandleSockPacket SockPacketHandlers[]; //结构化网络数据包处理函数列表
};