diff options
author | rubidium <rubidium@openttd.org> | 2010-10-15 19:58:56 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-10-15 19:58:56 +0000 |
commit | 9858d699a3c39be2e3a547d59163178012365598 (patch) | |
tree | b0d10b23b4d41471d8ba846ca1805614acfec187 /src/network/network_server.h | |
parent | bda26d03b509c3783596c0b3431ca0c8fd7c9990 (diff) | |
download | openttd-9858d699a3c39be2e3a547d59163178012365598.tar.xz |
(svn r20935) -Codechange: only let the server side use a pool of connected sockets
Diffstat (limited to 'src/network/network_server.h')
-rw-r--r-- | src/network/network_server.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/network/network_server.h b/src/network/network_server.h index 2e878dc5f..d943b1fa0 100644 --- a/src/network/network_server.h +++ b/src/network/network_server.h @@ -16,8 +16,13 @@ #include "network_internal.h" +class ServerNetworkGameSocketHandler; +typedef ServerNetworkGameSocketHandler NetworkClientSocket; +typedef Pool<NetworkClientSocket, ClientIndex, 8, MAX_CLIENT_SLOTS> NetworkClientSocketPool; +extern NetworkClientSocketPool _networkclientsocket_pool; + /** Class for handling the server side of the game connection. */ -class ServerNetworkGameSocketHandler : public NetworkGameSocketHandler { +class ServerNetworkGameSocketHandler : public NetworkClientSocketPool::PoolItem<&_networkclientsocket_pool>, public NetworkGameSocketHandler { protected: DECLARE_GAME_RECEIVE_COMMAND(PACKET_CLIENT_JOIN); DECLARE_GAME_RECEIVE_COMMAND(PACKET_CLIENT_COMPANY_INFO); @@ -54,6 +59,9 @@ DEF_SERVER_SEND_COMMAND_PARAM(PACKET_SERVER_MOVE)(NetworkClientSocket *cs, uint1 void NetworkServer_ReadPackets(NetworkClientSocket *cs); void NetworkServer_Tick(bool send_frame); +#define FOR_ALL_CLIENT_SOCKETS_FROM(var, start) FOR_ALL_ITEMS_FROM(NetworkClientSocket, clientsocket_index, var, start) +#define FOR_ALL_CLIENT_SOCKETS(var) FOR_ALL_CLIENT_SOCKETS_FROM(var, 0) + #else /* ENABLE_NETWORK */ /* Network function stubs when networking is disabled */ |