aboutsummaryrefslogtreecommitdiffstats
path: root/slobrok
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2021-09-10 07:54:11 +0000
committerArne H Juul <arnej@yahooinc.com>2021-09-10 10:01:17 +0000
commit23dd3ea6e797560374407a1d03e3ab41c13f0191 (patch)
tree50ec49a280944b33adb8e0c5b59c45d5259d3d99 /slobrok
parentce88c8013db53cc9860fff818c2d18cbee601354 (diff)
add wouldConflict() for LocalRpcMonitorMap
Diffstat (limited to 'slobrok')
-rw-r--r--slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp8
-rw-r--r--slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h2
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);