diff options
author | dec05eba <dec05eba@protonmail.com> | 2018-10-16 05:23:12 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-08-18 22:56:48 +0200 |
commit | cf5bcde77556847075e6cbdac9426892844ee643 (patch) | |
tree | a3bce8388280aa2453c669634427de776520b630 /src/BootstrapConnection.cpp | |
parent | c47870421f189eb98fc66e912693d73fbd8477ee (diff) |
Add more state functions
Diffstat (limited to 'src/BootstrapConnection.cpp')
-rw-r--r-- | src/BootstrapConnection.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
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<std::recursive_mutex> 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<std::recursive_mutex> lock(listenerCallbackFuncMutex); + return listenCallbackFuncs.find(pubsubKey) != listenCallbackFuncs.end(); + } + std::vector<std::shared_ptr<DirectConnectionPeer>> BootstrapConnection::getPeers() { return connections.getPeers(); |