IServerSocket dispatch
This commit is contained in:
@@ -9,6 +9,9 @@ namespace server {
|
||||
|
||||
class IServerSocket {
|
||||
public:
|
||||
using PlayerPacketHandlerType = std::unique_ptr<protocol::PacketHandler>(PlayerID);
|
||||
using PlayerPacketHandler = std::function<PlayerPacketHandlerType>;
|
||||
|
||||
utils::Signal<PlayerID, const protocol::PlayerInfo&> OnPlayerJoin;
|
||||
utils::Signal<PlayerID> OnPlayerLeave;
|
||||
utils::Signal<PlayerID, const protocol::PacketBase&> OnReceive;
|
||||
@@ -18,11 +21,15 @@ class IServerSocket {
|
||||
|
||||
void Disconnect(PlayerID a_PlayerId);
|
||||
|
||||
IServerSocket() {}
|
||||
void RegisterHandler(const PlayerPacketHandler& a_Handler);
|
||||
void UnregisterHandler(const PlayerPacketHandler& a_Handler);
|
||||
|
||||
IServerSocket();
|
||||
virtual ~IServerSocket() {}
|
||||
|
||||
private:
|
||||
PlayerIds m_Ids;
|
||||
std::vector<PlayerPacketHandler> m_Handlers;
|
||||
|
||||
protected:
|
||||
void OnConnectPeer(PeerID a_PeerId);
|
||||
|
||||
Reference in New Issue
Block a user