summaryrefslogtreecommitdiff
path: root/src/network/network_admin.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/network_admin.h')
-rw-r--r--src/network/network_admin.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/network/network_admin.h b/src/network/network_admin.h
index 98dbab481..16bd57a4d 100644
--- a/src/network/network_admin.h
+++ b/src/network/network_admin.h
@@ -83,15 +83,18 @@ public:
return "admin";
}
+ struct ServerNetworkAdminSocketHandlerFilter {
+ bool operator() (size_t index) { return ServerNetworkAdminSocketHandler::Get(index)->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)
+ static Pool::IterateWrapperFiltered<ServerNetworkAdminSocketHandler, ServerNetworkAdminSocketHandlerFilter> IterateActive(size_t from = 0)
{
- return Pool::IterateWrapper<ServerNetworkAdminSocketHandler>(from,
- [](size_t index) { return ServerNetworkAdminSocketHandler::Get(index)->GetAdminStatus() == ADMIN_STATUS_ACTIVE; });
+ return Pool::IterateWrapperFiltered<ServerNetworkAdminSocketHandler, ServerNetworkAdminSocketHandlerFilter>(from, ServerNetworkAdminSocketHandlerFilter{});
}
};