Files
mir_server/server/LogicServer/db/DataClient.h

102 lines
2.6 KiB
C
Raw Normal View History

2025-01-09 17:45:40 +08:00
#ifndef _DATA_CLIENT_H_
#define _DATA_CLIENT_H_
/***
*/
class CCustomJXClientSocket;
class CLogicServer;
//保存认证信息的时间 10分钟超时超时
#define KEEPSESSIONDATA 600000
//保存加载用户认证信息的结构
typedef struct
{
unsigned int nSeesionId;
unsigned int nActorid;
unsigned long long dwTime;
} LOADACTORSTRUCT;
class CDataClient:
public CCustomJXClientSocket
{
typedef VOID (CDataClient::*OnHandleSockPacket)(CDataPacketReader &packet);
public:
CDataClient(CLogicServer * pLogicServer);
~CDataClient();
public:
// 以下函数用于逻辑服务器向数据服务器发送查询信息
//数据服务器返回角色的状态
BOOL OnQuerySessionData(UINT_PTR nSessionId,unsigned int nActorId);
/*
* Comments: db服务器发送简单的数据
使 allocProtoPacketflushProtoPacket
* Param INT_PTR nCmd: ,dcLoadQuest
* Param T data:
* @Return VOID:
*/
template<class T>
inline VOID SendDbServerData( INT_PTR nCmd ,T & data)
{
CDataPacket& DataPacket = allocProtoPacket((jxSrvDef::INTERSRVCMD)nCmd);
DataPacket << data;
flushProtoPacket(DataPacket);
}
//等待数据发送或转储完成
void WaitFor();
public:
// 回收空闲的CDataPacket类
void FreeBackUserDataPacket(CDataPacket* pDataPacket);
protected:
VOID OnLoadActorMsg(CDataPacketReader &inPacket);
// 以下是实现基类的虚函数
virtual VOID OnDispatchRecvPacket(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader &inPacket);
virtual jxSrvDef::SERVERTYPE getLocalServerType();
/* ★查询本地服务器的名称,以便正确的发送注册数据 */
virtual LPCSTR getLocalServerName();
/* ★查询本地服务器ID以便正确的发送注册数据默认的返回值是0 */
virtual int getLocalServerIndex();
CLogicServer* m_pLogic;
//提供向最外层逻辑通知连接建立的事件
virtual VOID OnConnected();
virtual void OnRountine()
{
CCustomJXClientSocket::OnRountine();
}
////提供向最外层逻辑通知连接断开的事件
//virtual VOID OnDisconnected()
//{
//}
private:
// 分配一个CDataPacket
CDataPacket* AllocSendPacket();
private:
static const OnHandleSockPacket SockPacketHandlers[]; //结构化网络数据包处理函数列表
CQueueList<CDataPacket*> m_vFreeList; //用来存放空闲的数据包
CCSLock m_vFreeListLock;
CBaseList<LOADACTORSTRUCT> m_vSeesionData; //用来保存用户认证信息的队列
RTL_CRITICAL_SECTION m_SessionLock;
};
#endif