www.pudn.com > back.rar > serverbase.h
#ifndef _SERVERBASE_H_
#define _SERVERBASE_H_
class CConnectManage :public CIOCPToken
{
public:
virtual void OnConnected(int iClient);
virtual void OnDisconnected(int iClient);
};
class CServerManage : public CMultiToken
{
public:
CServerManage();
virtual void OnConnected(int iClient, int nServer);
virtual void OnDisConnected(int iClient, int nServer);
};
//IOCPNet basic base class
class CServerBase
{
public:
CServerBase();
~CServerBase(){}
//initialize
public:
BOOL ServerStart();
virtual BOOL Init() {return TRUE;}
protected:
BOOL _Init();
BOOL _Start();
//process
public:
DWORD GetFrame() {return m_dwFrames;}
BOOL SendToServer(int nServer,BYTE* pData,int size,BOOL bExtra = FALSE);
BOOL SendToClient(int iClient,BYTE* pData,int size,BOOL bExtra = FALSE);
void Stop() {DWORD dwExit = 2;TerminateThread(m_hThread,dwExit);g_IOCPNet.Stop();}
virtual void UserProcess() {}
void Process();
const CServerManage* GetServerManage(){ return &m_ServerManage;}
protected:
virtual void MsgProcess(int iClient,BYTE* pPacket) {}
DWORD m_ThreadID;
HANDLE m_hThread;
DWORD m_dwFrames;
void ServerPing();
//tokens
protected:
CServerManage m_ServerManage;
CConnectManage m_ConnectManage;
//tick manage
public:
virtual void TickManager_500 () {}
virtual void TickManager_1000 () {}
virtual void TickManager_1500 () {}
virtual void TickManager_2000 () {}
virtual void TickManager_2500 () {}
virtual void TickManager_3000 () {}
protected:
void _TickManager();
void _TickManager_500 ();
void _TickManager_1000 ();
void _TickManager_1500 ();
void _TickManager_2000 ();
void _TickManager_2500 ();
void _TickManager_3000 ();
DWORD m_dwCurTick;
DWORD m_dwTickManager_500; //0.5 sec manage
DWORD m_dwTickManager_1000; //1 sec manage
DWORD m_dwTickManager_1500; //1.5 sec manage
DWORD m_dwTickManager_2000; //2.0 sec manage
DWORD m_dwTickManager_2500; //2.5 sec manage
DWORD m_dwTickManager_3000; //3.0 sec manage
DWORD m_ReadCounts; //Read Packet Counts /sec
DWORD m_WriteCounts; //Write Packet Counts /sec
DWORD m_ReadBytes; //Read bytes / sec
DWORD m_WriteBytes; //Write bytes / sec
};
#endif