6#include <unordered_map>
19 std::vector<std::pair<int, std::string>>
lines;
37 void send(
int connectionId,
const std::string& msg);
Owns every client socket and runs the poll() loop.
void send(int connectionId, const std::string &msg)
Queue msg to be sent to a client (flushed during poll()).
std::unordered_map< int, Connection > _connections
void _acceptNew(PollResult &result)
Connection & getConnection(int connectionId)
Access the underlying Connection (e.g. to set its type/playerId).
void disconnect(int connectionId)
Close a client and drop its connection.
std::vector< INetworkObserver * > _observers
void _handleEvents(const pollfd &pfd, PollResult &result)
std::vector< pollfd > _pollFds
PollResult poll(int timeoutMs)
Run one poll cycle (blocks up to timeoutMs); returns this cycle's events.
std::unordered_map< int, int > _fdToId
void addNetworkObserver(INetworkObserver *observer)
Subscribe an observer to connect/disconnect/line events.
One client socket plus its read/write buffers.
Observer hooks for raw socket events (Observer pattern).
The server's listening socket.
std::vector< int > disconnectedIds
std::vector< int > newConnections
std::vector< std::pair< int, std::string > > lines