⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 masterserver.h

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 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 + -