game2001/server/gameserver/playermgr.h
2020-05-11 13:45:32 +08:00

40 lines
807 B
C++

#pragma once
namespace cs
{
class CMJoin;
}
namespace ss
{
class SS_WSP_SocketDisconnect;
class SS_Ping;
}
class Player;
class PlayerMgr : public a8::Singleton<PlayerMgr>
{
public:
enum { HID = HID_PlayerMgr };
private:
PlayerMgr() {};
friend class a8::Singleton<PlayerMgr>;
public:
void Init();
void UnInit();
void _SS_WSP_SocketDisconnect(f8::MsgHdr& hdr, const ss::SS_WSP_SocketDisconnect& msg);
void _SS_Ping(f8::MsgHdr& hdr, const ss::SS_Ping& msg);
int OnlineNum();
Player* GetPlayerBySocket(int socket);
Player* CreatePlayerByCMJoin(long ip_saddr, int socket, const cs::CMJoin& msg);
void OnClientDisconnect(a8::XParams& param);
void RemovePlayerBySocket(int socket_handle);
private:
std::map<int, Player*> socket_hash_;
};