81 lines
2.4 KiB
C
81 lines
2.4 KiB
C
|
|
#ifndef _CROSS_CLIENT_H_
|
|||
|
|
#define _CROSS_CLIENT_H_
|
|||
|
|
/*****************************************************************
|
|||
|
|
Copyright (c) 2021, 上海漫方网络科技有限公司
|
|||
|
|
All rights reserved
|
|||
|
|
|
|||
|
|
创建日期: 2021年04月28日 14时01分
|
|||
|
|
文件名称: CrossClient.h
|
|||
|
|
说 明: 数据引擎连接到跨服服务器的客户端类
|
|||
|
|
|
|||
|
|
当前版本: 1.00
|
|||
|
|
作 者:
|
|||
|
|
概 述: 数据引擎连接到跨服服务器的客户端类
|
|||
|
|
|
|||
|
|
*****************************************************************/
|
|||
|
|
using namespace wylib::sync::lock;
|
|||
|
|
|
|||
|
|
class CCrossServerManager;
|
|||
|
|
class CCrossServer;
|
|||
|
|
|
|||
|
|
using namespace jxSrvDef;
|
|||
|
|
|
|||
|
|
class CCrossClient
|
|||
|
|
: public CCustomJXServerClientSocket,
|
|||
|
|
public CCrossDataHandle
|
|||
|
|
{
|
|||
|
|
friend class CCrossServer;
|
|||
|
|
public:
|
|||
|
|
typedef CCustomJXServerClientSocket Inherited;
|
|||
|
|
typedef CCrossDataHandle InHandle;
|
|||
|
|
protected:
|
|||
|
|
//VOID ProcessRecvBuffers(PDATABUFFER pDataBuffer);
|
|||
|
|
VOID DispatchRecvMsg(CDataPacketReader & reader);
|
|||
|
|
//实现虚接口
|
|||
|
|
VOID OnDispatchRecvPacket(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader &inPacket);
|
|||
|
|
bool OnValidateRegData(const jxSrvDef::PSERVER_REGDATA pRegData) ;
|
|||
|
|
virtual void OnRegDataValidated();
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
VOID OnDisconnected();
|
|||
|
|
VOID OnError(INT errorCode);
|
|||
|
|
//覆盖父类例行执行的函数
|
|||
|
|
VOID OnRun();
|
|||
|
|
//由SessionServer调用的例行执行函数
|
|||
|
|
inline VOID Run(){ SingleRun(); }
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
|
|||
|
|
//重写收 发包的函数
|
|||
|
|
virtual CDataPacket& AllocDataPacket(const jxSrvDef::INTERSRVCMD nCmd)
|
|||
|
|
{
|
|||
|
|
return Inherited::allocProtoPacket(nCmd);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
virtual void FlushDataPacket(CDataPacket &packet)
|
|||
|
|
{
|
|||
|
|
return Inherited::flushProtoPacket(packet);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CCrossClient(){}
|
|||
|
|
~CCrossClient(){}
|
|||
|
|
//反馈是否可以跨平台的消息给逻辑服
|
|||
|
|
void OnSendReqCommonPlatformResult(CDataPacketReader &inPacket);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
int nCrossSrvId;//跨服id
|
|||
|
|
TICKCOUNT m_dwDisconnectedTick;//断开连接的时间
|
|||
|
|
|
|||
|
|
static const size_t MaxSSDataSize = 4096;//向会话服务器发送的单个数据包大小的最大值
|
|||
|
|
typedef VOID (CCrossClient::*OnHandleSockPacket)(CDataPacketReader &packet);
|
|||
|
|
static const size_t MaxForwardLogicDataSize = 40960; // 最大数据包为40k
|
|||
|
|
//大型SQL查询语句缓冲长度
|
|||
|
|
static const SIZE_T dwHugeSQLBufferSize = 1024 * 1024 * 2;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
|