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

71 lines
2.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _LOGGER_CLIENT_SOCKET_H_
#define _LOGGER_CLIENT_SOCKET_H_
class CCustomJXServerClientSocket;
class CLoggerServerSocket;
//class CNetworkDataHandler;
class CLoggerClientSocket:
public CCustomJXServerClientSocket
{
public:
CLoggerClientSocket(void);
CLoggerClientSocket(CLoggerServerSocket* pSrv,SOCKET nSocket, SOCKADDR_IN *pClientAddr);
~CLoggerClientSocket(void);
//继承基类的方法,处理收到的数据包
//virtual VOID ProcessRecvBuffers(PDATABUFFER pDataBuffer);
/*** 子类需覆盖的函数集 ***/
/* 处理单个通信数据包
* nCmd 通信消息命令
* inPacket 已经读取出通信命令的数据包,数据包的读取位置指向命令数据后的内容
*/
virtual VOID OnDispatchRecvPacket(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader &inPacket);
/* 验证客户端注册数据是否有效
*@return 返回true表示注册数据有效并返回false则关闭连接
*/
virtual bool OnValidateRegData(const jxSrvDef::PSERVER_REGDATA pRegData);
int GetServerIndex() {return m_nServerIndex;}
//发送聊天记录给日志查看器
void SendChatLogToClient(CDataPacketReader &inPacket);
private:
/*
* 处理逻辑包
* pDataBuff:为真正需要处理的数据包,这里只处理日志类型的数据包,每次处理一个数据包;nLen:数据的长度
* 返回实际处理的字节数事实上pDataBuff的大小会比数据包大,返回0表示出错没处理
*/
int ProcessData(void* pDataBuff,int nLen);
/*****以下四个函数分别保存4大类的日志内容*****/
VOID InsertLogin(CDataPacketReader &inPacket);
VOID InsertConsume(CDataPacketReader &inPacket);
VOID InsertOnline(CDataPacketReader &inPacket);
VOID InsertKillDrop(CDataPacketReader &inPacket);
VOID InsertJoinAtv(CDataPacketReader &inPacket);
VOID InsertDeal(CDataPacketReader &inPacket);
VOID InsertItem(CDataPacketReader &inPacket);
//VOID InsertSuggest(CDataPacketReader &inPacket); //插入建议数据
protected:
virtual VOID OnRun();
VOID OnDisconnected();
private:
//把数据包传递给这个类保存到数据库
CLoggerServerSocket* pSrv;
CSQLConenction* m_pSQLConnection; //数据库连接对象
CBaseList<CDataPacket* > m_dataList; //待处理的数据列表
CBaseList<CDataPacket* > m_freeDataList; //空闲的数据列表
int m_nServerIndex;
#ifndef WIN32
CLocalSender* m_pLocalSender;
#endif
};
#endif