Files
mir_server/server/LogicServer/Crossclient/LocalCrossClient.h

102 lines
3.4 KiB
C
Raw Normal View History

2025-01-09 17:45:40 +08:00
#ifndef LOCAL_CENTER_CLIENT_H_
#define LOCAL_CENTER_CLIENT_H_
/*
CopyRight@2021
CDataPacket &packet = allocProtoPacket(nCmdId);
// 填充消息数据包
fluashProtoPacket(packet);
CComClient *pCClient = GetGlobalEngine()->GetCommonClient();
CDataPacket &packet = pCClient->allocProtoPacket(nCmdId);
// 填充消息数据包
pCClient->fluashProtoPacket(packet);
OnDispatchRecvPacket接受消息并且将消息转发给NetWorkHandler里头线NetWorkHandler
author:
time: 2021-04-28
*/
class CLocalCrossClient : public CCustomJXClientSocket
{
public:
typedef CCustomJXClientSocket Inherited;
CLocalCrossClient();
virtual ~CLocalCrossClient();
/*
* Comments: CDataPacket类
* Param CDataPacket * pPacket:
* @Return void:
* @Remark: CommonClient收到来自CommonServer的数据包之后线
线
*/
void FreeBackUserDataPacket(CDataPacket* pPacket);
//发送数据到跨服线程
VOID SendRawServerData(const jxSrvDef::INTERSRVCMD nCmd, LPCVOID pData, SIZE_T size);
//重置服务器
void OnStopServer();
bool OnRunServer();
void OnSetSrvHostPort(std::string SrvHost, int64_t Port);
std::string OnGetSrvHost(){return m_SrvHost;};
int64_t OnGetSrvPort(){return m_Port;};
void OnSetCsIndex(int CurIndex){m_CurIndex = CurIndex;};
int OnGetCsIndex(){ return m_CurIndex;};
//给客户端使用的信息
void OnSetCsGateAddr(std::string SrvHost){ m_CsGateAddr = SrvHost;};
void OnSetCsGatePort(int Port){m_nCsGatePort = Port; };
std::string OnGetCsGateAddr(){ return m_CsGateAddr;};
int OnGetCsGatePort(){ return m_nCsGatePort; };
void SetClientName(std::string name){ CCustomClientSocket::SetClientName(name.c_str());};
protected:
// 以下是实现基类的虚函数
virtual VOID OnDispatchRecvPacket(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader &inPacket);
virtual jxSrvDef::SERVERTYPE getLocalServerType();
/* ★查询本地服务器的名称,以便正确的发送注册数据 */
virtual LPCSTR getLocalServerName();
/* ★查询本地服务器ID以便正确的发送注册数据默认的返回值是0 */
virtual int getLocalServerIndex();
virtual void OnRountine()
{
if(m_isRun)
{
CCustomJXClientSocket::OnRountine();
}
}
void OnRecvMessage(int nMsgId, CDataPacketReader &reader);
/*
* Comments:
* @Return CDataPacket*:
* @Remark: 线线
*/
CDataPacket* AllocSendPacket();
private:
CQueueList<CDataPacket*> m_vFreeList; //用来存放空闲的数据包
CCSLock m_vFreeListLock;
std::string m_SrvHost;
int64_t m_Port;
bool m_isRun;
int m_CurIndex;
//给客户端的数据信息
std::string m_CsGateAddr;
int m_nCsGatePort;
};
#endif//LOCAL_CENTER_CLIENT_H_