#pragma once #include #include #include namespace td { namespace server { class IServerSocket { public: utils::Signal OnConnect; utils::Signal OnDisconnect; utils::Signal OnReceive; virtual void Send(PlayerID, const protocol::PacketBase&) = 0; IServerSocket() {} virtual ~IServerSocket() {} private: PlayerIds m_Ids; protected: void OnConnectPeer(PeerID a_PeerId); void OnDisconnectPeer(PeerID a_PeerId); void OnReceivePeer(PeerID a_PeerId, const protocol::PacketBase& a_Packet); }; } // namespace server } // namespace td