From 150dfba95b9a6352b869804691aa6c07c83ef9df Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 6 Jan 2020 17:19:24 +0000 Subject: Codechange: Remove std::function from Pool iteration wrapper Add a separate template wrapper for filtered iteration --- src/network/network_admin.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/network') 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 IterateActive(size_t from = 0) + static Pool::IterateWrapperFiltered IterateActive(size_t from = 0) { - return Pool::IterateWrapper(from, - [](size_t index) { return ServerNetworkAdminSocketHandler::Get(index)->GetAdminStatus() == ADMIN_STATUS_ACTIVE; }); + return Pool::IterateWrapperFiltered(from, ServerNetworkAdminSocketHandlerFilter{}); } }; -- cgit v1.2.3-54-g00ecf