Files
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

81 lines
2.4 KiB
C++
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 _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