From e37307654fe4308ea82d652a61f5aa54460c8aa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Fri, 13 May 2016 01:58:56 -0400 Subject: [PATCH] make sure securedht methods override dht's --- include/opendht/dht.h | 20 ++++++++++---------- include/opendht/securedht.h | 6 +++--- src/dht.cpp | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/include/opendht/dht.h b/include/opendht/dht.h index d294404b..a49892be 100644 --- a/include/opendht/dht.h +++ b/include/opendht/dht.h @@ -137,15 +137,15 @@ public: cb and donecb won't be called again afterward. * @param f a filter function used to prefilter values. */ - void get(const InfoHash& key, GetCallback cb, DoneCallback donecb=nullptr, Value::Filter f = Value::AllFilter()); - void get(const InfoHash& key, GetCallback cb, DoneCallbackSimple donecb, Value::Filter f = Value::AllFilter()) { - get(key, cb, bindDoneCb(donecb), f); + virtual void get(const InfoHash& key, GetCallback cb, DoneCallback donecb={}, Value::Filter&& f={}); + virtual void get(const InfoHash& key, GetCallback cb, DoneCallbackSimple donecb={}, Value::Filter&& f={}) { + get(key, cb, bindDoneCb(donecb), std::forward<Value::Filter>(f)); } - void get(const InfoHash& key, GetCallbackSimple cb, DoneCallback donecb=nullptr, Value::Filter f = Value::AllFilter()) { - get(key, bindGetCb(cb), donecb, f); + void get(const InfoHash& key, GetCallbackSimple cb, DoneCallback donecb={}, Value::Filter&& f={}) { + get(key, bindGetCb(cb), donecb, std::forward<Value::Filter>(f)); } - void get(const InfoHash& key, GetCallbackSimple cb, DoneCallbackSimple donecb, Value::Filter f = Value::AllFilter()) { - get(key, bindGetCb(cb), bindDoneCb(donecb), f); + void get(const InfoHash& key, GetCallbackSimple cb, DoneCallbackSimple donecb, Value::Filter&& f={}) { + get(key, bindGetCb(cb), bindDoneCb(donecb), std::forward<Value::Filter>(f)); } /** @@ -203,9 +203,9 @@ public: * * @return a token to cancel the listener later. */ - size_t listen(const InfoHash&, GetCallback, Value::Filter = Value::AllFilter()); - size_t listen(const InfoHash& key, GetCallbackSimple cb, Value::Filter f = Value::AllFilter()) { - return listen(key, bindGetCb(cb), f); + virtual size_t listen(const InfoHash&, GetCallback, Value::Filter&&={}); + virtual size_t listen(const InfoHash& key, GetCallbackSimple cb, Value::Filter f={}) { + return listen(key, bindGetCb(cb), std::forward<Value::Filter>(f)); } bool cancelListen(const InfoHash&, size_t token); diff --git a/include/opendht/securedht.h b/include/opendht/securedht.h index 9496ab77..b5dd7774 100644 --- a/include/opendht/securedht.h +++ b/include/opendht/securedht.h @@ -85,12 +85,12 @@ public: * If the signature can't be checked, or if the data can't be decrypted, it is not returned. * Public, non-signed & non-encrypted data is retransmitted as-is. */ - void get(const InfoHash& id, GetCallback cb, DoneCallback donecb, Value::Filter&& = {}); - void get(const InfoHash& id, GetCallback cb, DoneCallbackSimple donecb, Value::Filter&& f = {}) { + virtual void get(const InfoHash& id, GetCallback cb, DoneCallback donecb={}, Value::Filter&& = {}) override; + virtual void get(const InfoHash& id, GetCallback cb, DoneCallbackSimple donecb={}, Value::Filter&& f = {}) override { get(id, cb, bindDoneCb(donecb), std::forward<Value::Filter>(f)); } - size_t listen(const InfoHash& id, GetCallback cb, Value::Filter&& = {}); + virtual size_t listen(const InfoHash& id, GetCallback cb, Value::Filter&& = {}) override; /** * Will take ownership of the value, sign it using our private key and put it in the DHT. diff --git a/src/dht.cpp b/src/dht.cpp index 46ad883d..702e32ce 100644 --- a/src/dht.cpp +++ b/src/dht.cpp @@ -1063,7 +1063,7 @@ Dht::listenTo(const InfoHash& id, sa_family_t af, GetCallback cb, Value::Filter } size_t -Dht::listen(const InfoHash& id, GetCallback cb, Value::Filter f) +Dht::listen(const InfoHash& id, GetCallback cb, Value::Filter&& f) { scheduler.syncTime(); @@ -1200,7 +1200,7 @@ struct OpStatus { }; void -Dht::get(const InfoHash& id, GetCallback getcb, DoneCallback donecb, Value::Filter filter) +Dht::get(const InfoHash& id, GetCallback getcb, DoneCallback donecb, Value::Filter&& filter) { scheduler.syncTime(); -- GitLab