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

47 lines
1.5 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 COMMON_SERVER_CLIENT_H_
#define COMMON_SERVER_CLIENT_H_
/*
公共服务器负责处理和客户端连接的数据发送接受逻辑类。公共辅服务器接受客户端(普通逻辑服务器)
连接后就创建一个CCommonServerClient对象用于和客户端通信。
*/
class CCommonServerClient : public CCustomJXServerClientSocket
{
friend class CCommonServer;
public:
typedef CCustomJXServerClientSocket Inherited;
CCommonServerClient(CCommonServer *lpCommonServer, SOCKET nSocket, PSOCKADDR_IN pAddrIn);
virtual ~CCommonServerClient();
/*
* Comments: 回收空闲的CDataPacket类
* Param CDataPacket * pPacket:
* @Return void:
* @Remark: 收到数据包之后,本地分配数据包对象将内容缓存起来,然后通过逻辑线程处理。
逻辑线程处理完数据后,调用此接口释放数据包对象。
*/
void FreeBackUserDataPacket(CDataPacket* pPacket);
protected:
// CCustomSocket 虚函数
VOID OnDisconnected();
VOID OnError(INT errorCode);
// CCustomWorkSocket 虚函数
VOID OnRun();
// CCustomJXServerClientSocket
VOID OnDispatchRecvPacket(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader &inPacket);
bool OnValidateRegData(const jxSrvDef::PSERVER_REGDATA pRegData);
// 由CommonServer调用的例行执行函数
inline VOID Run() { SingleRun(); }
CDataPacket* AllocSendPacket();
private:
CQueueList<CDataPacket*> m_vFreeList; //用来存放空闲的数据包
CCSLock m_vFreeListLock;
};
#endif