IServerSocket dispatch

This commit is contained in:
2025-08-19 18:30:42 +02:00
parent 53d2e3cf6b
commit 631e14e66e
2 changed files with 28 additions and 3 deletions

View File

@@ -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);