summaryrefslogtreecommitdiffstats
path: root/slobrok
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-08-17 10:19:22 +0000
committerArne Juul <arnej@verizonmedia.com>2021-08-17 10:19:22 +0000
commitc500e965f0411390303cb84163cc835128b4dddc (patch)
treef7da5242aee5d9626f9827a63b55fba02901aa89 /slobrok
parent3bf6c43312d10167aa0dd29f2992862ef7b47f53 (diff)
use aggregate initialization with designators
Diffstat (limited to 'slobrok')
-rw-r--r--slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp2
-rw-r--r--slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h39
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>;