From e0511ecead4d98ed84e18960a2f23cfe707b5a28 Mon Sep 17 00:00:00 2001 From: dec05eba <0xdec05eba@gmail.com> Date: Tue, 16 Oct 2018 05:23:12 +0200 Subject: Add more state functions --- src/BootstrapConnection.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/BootstrapConnection.cpp') diff --git a/src/BootstrapConnection.cpp b/src/BootstrapConnection.cpp index 0237a90..995fdcd 100644 --- a/src/BootstrapConnection.cpp +++ b/src/BootstrapConnection.cpp @@ -160,8 +160,13 @@ namespace sibs { { std::lock_guard lock(listenerCallbackFuncMutex); - if(listenCallbackFuncs.find(pubsubKey) != listenCallbackFuncs.end()) - throw PubsubKeyAlreadyListeningException(""); + auto it = listenCallbackFuncs.find(pubsubKey); + if(it != listenCallbackFuncs.end()) + { + Log::warn("BootstrapConnection::listen called on existing listener, overwriting callback function"); + it->second = callbackFunc; + return { pubsubKey }; + } listenCallbackFuncs[pubsubKey] = callbackFunc; } @@ -246,6 +251,12 @@ namespace sibs return true; } + bool BootstrapConnection::areWeListeningOnKey(const PubsubKey &pubsubKey) + { + std::lock_guard lock(listenerCallbackFuncMutex); + return listenCallbackFuncs.find(pubsubKey) != listenCallbackFuncs.end(); + } + std::vector> BootstrapConnection::getPeers() { return connections.getPeers(); -- cgit v1.2.3