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

📄 incomingplayermanager.h

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 H
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : IncomingPlayerManager.h// Written by  : reiot@ewestsoft.com// Description : //////////////////////////////////////////////////////////////////////////////#ifndef __INCOMING_PLAYER_MANAGER_H__#define __INCOMING_PLAYER_MANAGER_H__#include "Types.h"#include "Exception.h"#include "PlayerManager.h"#include "GamePlayer.h"#include "ServerSocket.h"#include "DatagramSocket.h"#include "ConnectionInfoManager.h"#include "Mutex.h"//////////////////////////////////////////////////////////////////////////////// class IncomingPlayerManager;//// PlayerManager绰 霸烙 辑滚俊 立加茄 傈眉 敲饭捞绢甫 淬寸窍哥,// ZonePlayerManager绰 阿 粮弊缝俊 辆加等 敲饭捞绢甸阑 淬寸窍绰 馆搁,// IncomingPlayerManager绰 霸烙 辑滚客 楷搬篮 捞风绢脸栏唱 酒流 农府贸甫// 肺爹窍瘤 臼篮 烙矫利牢 惑怕狼 敲饭捞绢甸阑 包府茄促.//// 货肺款 立加阑 牢刘茄 饶, 农府贸甫 肺爹秦辑 敲饭捞绢客 楷包矫挪促.// 农府贸啊 肺爹登搁 敲饭捞绢 棺 农府贸甫 促弗 粮弊缝栏肺 逞败霖促.//////////////////////////////////////////////////////////////////////////////class IncomingPlayerManager : public PlayerManager {public:	IncomingPlayerManager() throw(Error);	~IncomingPlayerManager() throw(Error);public:	// initialize 	void init() throw(Error);	// broadcast packet to all players	void broadcast(Packet* pPacket) throw(Error);	// 促澜狼 皋筋靛甸篮 ZoneThread俊 狼秦辑 龋免等促.	// 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);	// accept new connection	bool acceptNewConnection() throw(Error);	void copyPlayers() throw();	// add/delete player	void addPlayer(Player* pGamePlayer) throw(DuplicatedException, Error);	void addPlayer_NOBLOCKED(Player* pGamePlayer) throw(DuplicatedException, Error);	void deletePlayer(SOCKET fd) throw(OutOfBoundException, NoSuchElementException, Error);	void deletePlayer_NOBLOCKED(SOCKET fd) throw(OutOfBoundException, NoSuchElementException, Error);	// get Player by string	GamePlayer* getPlayer_NOBLOCKED(const string & id) throw(NoSuchElementException, Error);	GamePlayer* getPlayer(const string & id) throw(NoSuchElementException, Error);	GamePlayer* getReadyPlayer(const string & id) throw(NoSuchElementException, Error);	// lock/unlock	void lock() throw(Error) { m_Mutex.lock(); }	void unlock() throw(Error) { m_Mutex.unlock(); }    // push Player to queue    void pushPlayer(GamePlayer* pGamePlayer) throw(Error);    void pushOutPlayer(GamePlayer* pGamePlayer) throw(Error);    // Queue's Player Add Manager	void heartbeat() throw(Error);    void deleteQueuePlayer(GamePlayer* pGamePlayer) throw(NoSuchElementException, Error);	// 葛电 敲饭捞绢甫 沥府茄促.	void clearPlayers() throw(Error);private:	// TCP 辑滚 家南苞 家南 叼胶农赋磐	ServerSocket* m_pServerSocket;	SOCKET m_SocketID;	// 家加等 敲饭捞绢甸狼 家南 叼胶农赋磐狼 笼钦捞促.	// 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;    list< GamePlayer* > m_PlayerListQueue;	list< GamePlayer* > m_PlayerOutListQueue;	int m_CheckValue;	// by sigi. for debugging. 2002.11.11	mutable Mutex 	m_MutexOut;};// external variable declarationextern IncomingPlayerManager* g_pIncomingPlayerManager;#endif

⌨️ 快捷键说明

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