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

📄 zoneplayermanager.h

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 H
字号:
////////////////////////////////////////////////////////////////////////// Filename    : ZonePlayerManager.h// Written by  : reiot@ewestsoft.com// Description : ////////////////////////////////////////////////////////////////////////#ifndef __ZONE_PLAYER_MANAGER_H__#define __ZONE_PLAYER_MANAGER_H__// include files#include "Types.h"#include "Exception.h"#include "PlayerManager.h"#include "Player.h"#include "Socket.h"#include "Mutex.h"#include "Effect.h"class GamePlayer;////////////////////////////////////////////////////////////////////////// class ZonePlayerManager;//// 泅犁 ZoneGroup俊 家加等 敲饭捞绢甫 包府窍绰 概聪历 按眉捞促.////////////////////////////////////////////////////////////////////////class ZonePlayerManager : public PlayerManager {public:	// constructor	ZonePlayerManager() throw();	// destructor	~ZonePlayerManager() throw();	// select 	void select() throw(TimeoutException, InterruptedException, Error);	// process all players' inputs	void processInputs() throw(IOException, Error);	// process all players' outputs	void processOutputs() throw(IOException, Error);	// process all players' exceptions	void processExceptions() throw(IOException, Error);		// process all players' commands	void processCommands() throw(IOException, Error);	// broadcast packet	void broadcastPacket(Packet* pPacket) throw(Error);	void broadcastPacket_NOBLOCKED(Packet* pPacket) throw(Error);		// add player to zone player manager	void addPlayer(GamePlayer* pGamePlayer) throw(DuplicatedException, Error);	void addPlayer_NOBLOCKED(GamePlayer* pGamePlayer) throw(DuplicatedException, Error);	// delete player from zone player manager	void deletePlayer(SOCKET fd) throw(OutOfBoundException, NoSuchElementException, Error);	void deletePlayer_NOBLOCKED(SOCKET fd) throw(OutOfBoundException, NoSuchElementException, Error);	void deletePlayer(Player* pPlayer) throw(OutOfBoundException, NoSuchElementException, Error)	{		deletePlayer(pPlayer->getSocket()->getSOCKET());	}	// get player	Player* getPlayer(SOCKET fd) throw(OutOfBoundException, NoSuchElementException, Error) ;	// get Player by PhoneNumber	Player* getPlayerByPhoneNumber(PhoneNumber_t PhoneNumber) throw(OutOfBoundException, NoSuchElementException, Error);	// All Member Save	void save() throw(Error);	void copyPlayers() throw();    // push Player to queue    void pushPlayer(GamePlayer* pGamePlayer) throw(Error);    void pushOutPlayer(GamePlayer* pGamePlayer) throw(Error);	void processPlayerListQueue() throw (Error);	// Queue's Player Add Manager    void heartbeat() throw(Error);	// delete Queue Player	void deleteQueuePlayer(GamePlayer* pGamePlayer) throw(NoSuchElementException, Error);	void    removeFlag (Effect::EffectClass EC) throw(Error);	void lock() throw (Error) { m_Mutex.lock(); }		void unlock() throw (Error) { m_Mutex.unlock(); }		// 葛电 敲饭捞绢甫 沥府茄促.	void clearPlayers() throw (Error);	void setZGID( ZoneGroupID_t id ) { m_ZGID = id; }	ZoneGroupID_t getZGID() const { return m_ZGID; }private:	// 家加等 敲饭捞绢甸狼 家南 叼胶农赋磐狼 笼钦捞促.	// m_XXXXFDs[0]篮 历厘侩捞哥, m_XXXFDs[1]捞 角力肺 select()狼 颇扼固磐肺 荤侩等促.	// 溜 select()窍扁 傈俊 [0] -> [1] 肺 汗荤啊 捞风绢廉具 茄促.	fd_set m_ReadFDs[2];	fd_set m_WriteFDs[2];	fd_set m_ExceptFDs[2];	// select俊 荤侩登绰 矫埃	Timeval m_Timeout[2];	// min_fd, max_fd	// select()饶 iterating 且 锭 加档 刘啊甫 困秦辑 荤侩茄促.	// 肚茄 select()狼 霉锅掳 颇扼固磐甫 拌魂窍扁 困秦辑 荤侩茄促.	SOCKET m_MinFD;	SOCKET m_MaxFD;	// mutex	mutable Mutex m_Mutex;	mutable Mutex m_Mutex2;	list< GamePlayer* > m_PlayerListQueue;	list< GamePlayer* > m_PlayerOutListQueue;	ZoneGroupID_t m_ZGID;};// external variable declarationextern ZonePlayerManager* g_pZonePlayerManager;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -