diff options
author | Arne H Juul <arnej@yahooinc.com> | 2021-09-10 07:54:11 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2021-09-10 10:01:17 +0000 |
commit | 23dd3ea6e797560374407a1d03e3ab41c13f0191 (patch) | |
tree | 50ec49a280944b33adb8e0c5b59c45d5259d3d99 /slobrok | |
parent | ce88c8013db53cc9860fff818c2d18cbee601354 (diff) |
add wouldConflict() for LocalRpcMonitorMap
Diffstat (limited to 'slobrok')
-rw-r--r-- | slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp | 8 | ||||
-rw-r--r-- | slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h | 2 |
2 files changed, 10 insertions, 0 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 55d0e744743..16e47371cbb 100644 --- a/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp +++ b/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp @@ -102,6 +102,14 @@ ServiceMapHistory & LocalRpcMonitorMap::history() { return _history; } +bool LocalRpcMonitorMap::wouldConflict(const ServiceMapping &mapping) const { + auto iter = _map.find(mapping.name); + if (iter == _map.end()) { + return false; // no mapping, no conflict + } + return (iter->second.spec != mapping.spec); +} + void LocalRpcMonitorMap::addLocal(const ServiceMapping &mapping, std::unique_ptr<AddLocalCompletionHandler> inflight) { 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 920d54a405f..e3d081eacc9 100644 --- a/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h +++ b/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h @@ -129,6 +129,8 @@ public: MapSource &dispatcher() { return _dispatcher; } ServiceMapHistory & history(); + bool wouldConflict(const ServiceMapping &mapping) const; + /** for use by register API, will call doneHandler() on inflight script */ void addLocal(const ServiceMapping &mapping, std::unique_ptr<AddLocalCompletionHandler> inflight); |