summaryrefslogtreecommitdiff
path: root/src/network/network_admin.h
diff options
context:
space:
mode:
authorglx <glx@openttd.org>2019-12-16 20:56:10 +0100
committerNiels Martin Hansen <nielsm@indvikleren.dk>2019-12-21 20:13:03 +0100
commit41232f18c18c9ca444282a9e959b7dfd6c93eff5 (patch)
treedce6e69fc4e0c7d441cf4916700aa3156be88e62 /src/network/network_admin.h
parent09fa39c5b59d88a076a244cf1623a53b0ffa1434 (diff)
downloadopenttd-41232f18c18c9ca444282a9e959b7dfd6c93eff5.tar.xz
Codechange: Replace network related FOR_ALL with range-based for loops
Diffstat (limited to 'src/network/network_admin.h')
-rw-r--r--src/network/network_admin.h32
1 files changed, 11 insertions, 21 deletions
diff --git a/src/network/network_admin.h b/src/network/network_admin.h
index bf3dc2242..98dbab481 100644
--- a/src/network/network_admin.h
+++ b/src/network/network_admin.h
@@ -82,28 +82,18 @@ public:
{
return "admin";
}
-};
-
-/**
- * Iterate over all the sockets from a given starting point.
- * @param var The variable to iterate with.
- * @param start The start of the iteration.
- */
-#define FOR_ALL_ADMIN_SOCKETS_FROM(var, start) FOR_ALL_ITEMS_FROM(ServerNetworkAdminSocketHandler, adminsocket_index, var, start)
-/**
- * Iterate over all the sockets.
- * @param var The variable to iterate with.
- */
-#define FOR_ALL_ADMIN_SOCKETS(var) FOR_ALL_ADMIN_SOCKETS_FROM(var, 0)
-
-/**
- * Iterate over all the active sockets.
- * @param var The variable to iterate with.
- */
-#define FOR_ALL_ACTIVE_ADMIN_SOCKETS(var) \
- FOR_ALL_ADMIN_SOCKETS(var) \
- if (var->GetAdminStatus() == ADMIN_STATUS_ACTIVE)
+ /**
+ * Returns an iterable ensemble of all active admin sockets
+ * @param from index of the first socket to consider
+ * @return an iterable ensemble of all active admin sockets
+ */
+ static Pool::IterateWrapper<ServerNetworkAdminSocketHandler> IterateActive(size_t from = 0)
+ {
+ return Pool::IterateWrapper<ServerNetworkAdminSocketHandler>(from,
+ [](size_t index) { return ServerNetworkAdminSocketHandler::Get(index)->GetAdminStatus() == ADMIN_STATUS_ACTIVE; });
+ }
+};
void NetworkAdminClientInfo(const NetworkClientSocket *cs, bool new_client = false);
void NetworkAdminClientUpdate(const NetworkClientInfo *ci);