diff options
author | rubidium <rubidium@openttd.org> | 2008-12-23 11:43:32 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-12-23 11:43:32 +0000 |
commit | e267bee098dc96f0c2b17f5794f2f330b0acaf58 (patch) | |
tree | b70aff92d1a653082f0958917d8bc936bf96bc2a /src | |
parent | 97662a0fff0a8c5099ee48f43d15ab0881493393 (diff) | |
download | openttd-e267bee098dc96f0c2b17f5794f2f330b0acaf58.tar.xz |
(svn r14724) -Codechange: move some NetworkClientSocket related function/definitions closer together.
Diffstat (limited to 'src')
-rw-r--r-- | src/network/core/tcp.h | 14 | ||||
-rw-r--r-- | src/network/network_internal.h | 8 |
2 files changed, 14 insertions, 8 deletions
diff --git a/src/network/core/tcp.h b/src/network/core/tcp.h index f720e0de0..aa5bb7c4a 100644 --- a/src/network/core/tcp.h +++ b/src/network/core/tcp.h @@ -111,6 +111,7 @@ public: Packet *Recv_Packet(NetworkRecvStatus *status); + inline bool IsValid() const { return this->IsConnected(); } inline NetworkClientInfo *GetInfo() const { extern NetworkClientSocket _clients[MAX_CLIENTS]; @@ -118,6 +119,19 @@ public: } }; +// Here we keep track of the clients +// (and the client uses [0] for his own communication) +extern NetworkClientSocket _clients[MAX_CLIENTS]; +#define GetNetworkClientSocket(i) (&_clients[i]) + +static inline bool IsValidNetworkClientSocketIndex(ClientIndex index) +{ + return (uint)index < MAX_CLIENTS && GetNetworkClientSocket(index)->IsValid(); +} + +#define FOR_ALL_CLIENT_SOCKETS_FROM(d, start) for (d = GetNetworkClientSocket(start); d != GetNetworkClientSocket(MAX_CLIENTS); d++) if (d->IsValid()) +#define FOR_ALL_CLIENT_SOCKETS(d) FOR_ALL_CLIENT_SOCKETS_FROM(d, 0) + #endif /* ENABLE_NETWORK */ #endif /* NETWORK_CORE_TCP_H */ diff --git a/src/network/network_internal.h b/src/network/network_internal.h index 3f247fb2e..1434e47e0 100644 --- a/src/network/network_internal.h +++ b/src/network/network_internal.h @@ -122,10 +122,6 @@ extern uint8 _network_advertise_retries; // following externs are instantiated at network.cpp extern CommandPacket *_local_command_queue; -// Here we keep track of the clients -// (and the client uses [0] for his own communication) -extern NetworkClientSocket _clients[MAX_CLIENTS]; - void NetworkTCPQueryServer(const char* host, unsigned short port); void NetworkAddServer(const char *b); @@ -147,8 +143,6 @@ NetworkClientSocket *NetworkFindClientStateFromClientID(ClientID client_id); char* GetNetworkErrorMsg(char* buf, NetworkErrorCode err, const char* last); bool NetworkFindName(char new_name[NETWORK_CLIENT_NAME_LENGTH]); -#define GetNetworkClientSocket(i) (&_clients[i]) - // Macros to make life a bit more easier #define DEF_CLIENT_RECEIVE_COMMAND(type) NetworkRecvStatus NetworkPacketReceive_ ## type ## _command(Packet *p) #define DEF_CLIENT_SEND_COMMAND(type) void NetworkPacketSend_ ## type ## _command() @@ -160,7 +154,5 @@ bool NetworkFindName(char new_name[NETWORK_CLIENT_NAME_LENGTH]); #define SEND_COMMAND(type) NetworkPacketSend_ ## type ## _command #define RECEIVE_COMMAND(type) NetworkPacketReceive_ ## type ## _command -#define FOR_ALL_CLIENT_SOCKETS(cs) for (cs = _clients; cs != endof(_clients) && cs->IsConnected(); cs++) - #endif /* ENABLE_NETWORK */ #endif /* NETWORK_INTERNAL_H */ |