📄 masterserver.h
字号:
#ifndef _MASTERSERVER_H_
#define _MASTERSERVER_H_
#include <windows.h>
#include <Singleton.h>
#include <map>
#include <const.h>
#include <Timer.h>
// 辑滚 烹拳樊 困秦
#include <ServerStruct.h>
#include <SolarHashTable.h>
using namespace std;
class IOCPServer;
class Session;
class GameDBProxySession;
class AccountDBProxySession;
class OpServerSession;
class RemoteServerSession;
class NetworkObject;
struct SERVER_MONEY_INFO;
class ServerSession;
using namespace util;
class MasterServer : public Singleton<MasterServer>
{
enum { IOHANDLER_KEY = 0 };
friend NetworkObject* CallBackOnAccept( DWORD dwNetworkIndex );
friend VOID CallBackOnDisconnect( DWORD dwSessionIndex, NetworkObject *pNetworkObject );
public:
MasterServer();
~MasterServer();
BOOL Init();
VOID Release();
VOID Run();
BOOL Update();
VOID StartListen();
VOID ConnectToServer( NetworkObject *pNetworkObject, char *pszIP, WORD wPort );
inline VOID Shutdown() { m_bShutdown = TRUE; }
inline BOOL IsOnShutdown() { return m_bShutdown; }
BOOL IsConnectedTo( eSERVER_TYPE eServerType );
VOID SetMoney( SERVER_KEY serverkey, DWORD &dwGetMoney, DWORD &dwLoseMoney, DWORD &dwUserMoney );
BOOL GetMoney( SERVER_KEY serverkey, DWORD &dwGetMoney, DWORD &dwLoseMoney, DWORD &dwUserMoney );
VOID RemoveMoney( SERVER_KEY serverkey );
DWORD GetMoneyInfoNum();
VOID SetMoneyInfoFirst();
SERVER_MONEY_INFO* GetMoneyInfoNext();
inline eSERVER_TYPE GetServerType() { return MASTER_SERVER; }
// 辑滚 辆丰 包访
inline BOOL IsExitServer() { return m_bExitServer; }
inline VOID SetExitServer( BOOL bExit = TRUE ) { m_bExitServer = bExit; }
inline VOID SetExitKey( DWORD dwKey ) { m_dwExitKey = dwKey; }
inline DWORD GetExitKey() { return m_dwExitKey; }
inline BOOL IsSendExit() { return m_bSendExit; }
inline VOID SetSendExit( BOOL bExit = FALSE) { m_bSendExit = bExit; }
BOOL AddExitServer( SERVER_KEY sServerKey ); // 辆丰且 辑滚 眠啊
VOID RemoveExitServer( SERVER_KEY sServerKey ); // 辆丰且 辑滚 昏力
BOOL CheckExitServer(); // 辆丰 疙飞 罐疽绰瘤 犬牢窍绊, 辆丰登菌栏搁 TRUE
inline ServerSession* GetOpServer() { return (ServerSession*)m_pOpServerSession; }
private:
BOOL ProcessConsole();
VOID UpdateFPS();
VOID DisplayServerInfo();
VOID MaintainConnection();
IOCPServer *m_pIOCPServer;
AccountDBProxySession *m_pAccountDBProxySession;
OpServerSession *m_pOpServerSession;
BOOL m_bShutdown;
DWORD m_dwFPS;
util::Timer m_ReconnectTimer;
util::SolarHashTable<SERVER_MONEY_INFO *> *m_pServerMoneyInfoTable;
SERVER_KEY m_ExitServerKey; // RTTA俊辑 罐篮 沥惑辆丰 橇肺配妮俊辑 啊府虐绰 辑滚 虐
BOOL m_bExitServer; // 辑滚 沥惑辆丰吝牢啊?
DWORD m_dwExitKey; // RTT俊辑 焊郴林绰 辆丰 虐. 弊措肺 焊包沁促啊 倒妨拎具 茄促
BOOL m_bSendExit; // 辆丰 菩哦 焊辰 惑怕牢啊?
util::SolarHashTable<SERVER_KEY *> *m_pExitServerTable; // 沥惑辆丰且 辑滚 格废-辆丰 橇肺配妮 罐绰 鉴埃 立加等 辑滚甸阑 历厘
util::Timer m_ExitTimer; // 辆丰 措扁侩 鸥捞赣
};
#endif // _MASTERSERVER_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -