Files

81 lines
2.4 KiB
C
Raw Permalink Normal View History

2025-01-09 17:45:40 +08:00
#ifndef _CROSS_CLIENT_H_
#define _CROSS_CLIENT_H_
/*****************************************************************
            Copyright (c) 2021, 
                    All rights reserved
       
      20210428 1401
      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