Files
mir_server/server/RobotGate/GateServer.h
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

67 lines
2.0 KiB
C

#ifndef _RUNGATE_H_
#define _RUNGATE_H_
#ifndef EXPORTCALL
#define EXPORTCALL __stdcall
#endif
/*作为插件导出函数中查询发送线程状态的结构*/
typedef struct tagRunGateSendThreadQueryStruct
{
#ifdef _MSC_VER
HANDLE hThread;
#else
pthread_t hThread;
#endif
DWORD dwThreadId;
TICKCOUNT dwProcTick;
TICKCOUNT dwSleepTick;
}RUNGATESENDTHREADQUERYSTRUCT, *PRUNGATESENDTHREADQUERYSTRUCT;
/*作为插件导出函数中枚举会话信息的结构*/
typedef struct tagRunGateQuerySessionStruct
{
SOCKET nSocket;
PRUNGATEUSERSESSION pSession;
SOCKADDRIN SockAddr;
int nRecvPacketCount;
int nSendPacketCount;
WORD wPacketError;
BYTE btPacketIdx;
bool boSendAvaliable;
unsigned long long nVerifyIdx;
int nRecvBufSize;
int nRecvCacheSize;
int nSendBufSize;
int nSendCacheSize;
TICKCOUNT dwActiveTick;
TICKCOUNT dwClientMsgTick;
TICKCOUNT dwServerMsgTick;
//CHAR sLoginAccount[32];
//CHAR sLoginCharName[32];
int nSessionId;
}RUNGATEQUERYSESSIONSTRUCT, *PRUNGATEQUERYSESSIONSTRUCT;
/*作为插件导出函数中枚举会话信息的回调函数类型*/
typedef INT (CALLBACK *RUNGATE_ENUMSESSION_ROUTINE) (LPVOID lpRunSockProcesser, PRUNGATEQUERYSESSIONSTRUCT pSessionInfo);
/*作为插件导出函数中查询数据统计信息的结构*/
typedef struct tagRunDataStatics
{
SIZE_T dwProcessRecvSize; //处理客户端接收数据大小
SIZE_T dwWaitSendUserSize; //待发送给用户的数据包大小
SIZE_T dwWaitSendQueueSize; //待发给用户的数据包队列大小
SIZE_T dwRecvSeverSize; //接收服务器数据大小
SIZE_T dwSendUserSize; //发送用户数据大小
TICKCOUNT dwLastProcUsrMsgTime; //上次处理用户数据时间
TICKCOUNT dwLastProcSrvMsgTime; //上次处理服务器数据时间
TICKCOUNT dwLastRecvSrvMsgTime; //上次接收服务器数据时间
TICKCOUNT dwProcSrvThreadSleep; //处理服务器数据线程休眠时间
SIZE_T dwSendQueueSize; //待发数据队列数据包大小
}RUNDATASTATICS, *PRUNDATASTATICS;
#endif