diff options
-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); |