diff options
author | Arne Juul <arnej@verizonmedia.com> | 2021-08-17 10:19:22 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2021-08-17 10:19:22 +0000 |
commit | c500e965f0411390303cb84163cc835128b4dddc (patch) | |
tree | f7da5242aee5d9626f9827a63b55fba02901aa89 /slobrok | |
parent | 3bf6c43312d10167aa0dd29f2992862ef7b47f53 (diff) |
use aggregate initialization with designators
Diffstat (limited to 'slobrok')
-rw-r--r-- | slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp | 2 | ||||
-rw-r--r-- | slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h | 39 |
2 files changed, 22 insertions, 19 deletions
diff --git a/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp b/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp index ec522dfb563..b32c6bc1a63 100644 --- a/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp +++ b/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp @@ -7,7 +7,7 @@ LOG_SETUP(".slobrok.server.local_rpc_monitor_map"); namespace slobrok { -LocalRpcMonitorMap::PerService::~PerService() = default; +#pragma GCC diagnostic ignored "-Winline" LocalRpcMonitorMap::LocalRpcMonitorMap(FRT_Supervisor &supervisor) : _map(), diff --git a/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h b/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h index e88425ceb16..05d71a8d681 100644 --- a/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h +++ b/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h @@ -30,35 +30,38 @@ class LocalRpcMonitorMap : public IRpcServerManager, { private: struct PerService { - bool up = false; - bool localOnly = false; - std::unique_ptr<ScriptCommand> inflight = {}; - std::unique_ptr<ManagedRpcServer> srv = {}; - ~PerService(); - PerService() = default; - - PerService(PerService &&) = default; - PerService& operator=(PerService &&) = default; + bool up; + bool localOnly; + std::unique_ptr<ScriptCommand> inflight; + std::unique_ptr<ManagedRpcServer> srv; vespalib::string name() { return srv->getName(); } vespalib::string spec() { return srv->getSpec(); } ServiceMapping mapping() { return ServiceMapping{srv->getName(), srv->getSpec()}; } }; + std::unique_ptr<ManagedRpcServer> managedFor(const ServiceMapping &mapping) { + return std::make_unique<ManagedRpcServer>(mapping.name, mapping.spec, *this); + } + PerService localService(const ServiceMapping &mapping, std::unique_ptr<ScriptCommand> inflight) { - PerService result; - result.localOnly = true; - result.inflight = std::move(inflight); - result.srv = std::make_unique<ManagedRpcServer>(mapping.name, mapping.spec, *this); - return result; + return PerService{ + .up = false, + .localOnly = true, + .inflight = std::move(inflight), + .srv = managedFor(mapping) + }; } - + PerService globalService(const ServiceMapping &mapping) { - PerService result; - result.srv = std::make_unique<ManagedRpcServer>(mapping.name, mapping.spec, *this); - return result; + return PerService{ + .up = false, + .localOnly = false, + .inflight = {}, + .srv = managedFor(mapping) + }; } using Map = std::map<vespalib::string, PerService>; |