dhtrunner: add missing shared_ptr<Value> versions of putSigned, putEncrypted.

This commit is contained in:
Adrien Béraud committed 2015-12-09 14:40:00 -05:00
1 parent af6f33e9ee
commit 8fd71c7f3d
2 files changed
+39 -15

No files matched your search

+21 -7
View File
@@ -149,26 +149,40 @@ public:
void cancelListen(InfoHash h, size_t token);
void cancelListen(InfoHash h, std::shared_future<size_t> token);
void put(InfoHash hash, Value&& value, Dht::DoneCallback cb=nullptr);
void put(InfoHash hash, const std::shared_ptr<Value>&, Dht::DoneCallback cb=nullptr);
void put(InfoHash hash, std::shared_ptr<Value> value, Dht::DoneCallback cb={});
void put(InfoHash hash, std::shared_ptr<Value> value, Dht::DoneCallbackSimple cb) {
put(hash, value, Dht::bindDoneCb(cb));
}
void put(InfoHash hash, Value&& value, Dht::DoneCallback cb={});
void put(InfoHash hash, Value&& value, Dht::DoneCallbackSimple cb) {
put(hash, std::forward<Value>(value), Dht::bindDoneCb(cb));
}
void put(const std::string& key, Value&& value, Dht::DoneCallbackSimple cb=nullptr);
void put(const std::string& key, Value&& value, Dht::DoneCallbackSimple cb={});
void cancelPut(const InfoHash& h, const Value::Id& id);
void putSigned(InfoHash hash, Value&& value, Dht::DoneCallback cb=nullptr);
void putSigned(const std::string& key, Value&& value, Dht::DoneCallbackSimple cb=nullptr);
void putSigned(InfoHash hash, std::shared_ptr<Value> value, Dht::DoneCallback cb={});
void putSigned(InfoHash hash, std::shared_ptr<Value> value, Dht::DoneCallbackSimple cb) {
putSigned(hash, value, Dht::bindDoneCb(cb));
}
void putSigned(InfoHash hash, Value&& value, Dht::DoneCallback cb={});
void putSigned(InfoHash hash, Value&& value, Dht::DoneCallbackSimple cb) {
putSigned(hash, std::forward<Value>(value), Dht::bindDoneCb(cb));
}
void putSigned(const std::string& key, Value&& value, Dht::DoneCallbackSimple cb={});
void putEncrypted(InfoHash hash, InfoHash to, Value&& value, Dht::DoneCallback cb=nullptr);
void putEncrypted(InfoHash hash, InfoHash to, std::shared_ptr<Value> value, Dht::DoneCallback cb={});
void putEncrypted(InfoHash hash, InfoHash to, std::shared_ptr<Value> value, Dht::DoneCallbackSimple cb) {
putEncrypted(hash, to, value, Dht::bindDoneCb(cb));
}
void putEncrypted(InfoHash hash, InfoHash to, Value&& value, Dht::DoneCallback cb={});
void putEncrypted(InfoHash hash, InfoHash to, Value&& value, Dht::DoneCallbackSimple cb) {
putEncrypted(hash, to, std::forward<Value>(value), Dht::bindDoneCb(cb));
}
void putEncrypted(const std::string& key, InfoHash to, Value&& value, Dht::DoneCallback cb=nullptr);
void putEncrypted(const std::string& key, InfoHash to, Value&& value, Dht::DoneCallback cb={});
void bootstrap(const char* host, const char* service);
void bootstrap(const std::vector<std::pair<sockaddr_storage, socklen_t>>& nodes);
+18 -8
View File
@@ -359,7 +359,7 @@ DhtRunner::put(InfoHash hash, Value&& value, Dht::DoneCallback cb)
}
void
DhtRunner::put(InfoHash hash, const std::shared_ptr<Value>& value, Dht::DoneCallback cb)
DhtRunner::put(InfoHash hash, std::shared_ptr<Value> value, Dht::DoneCallback cb)
{
std::lock_guard<std::mutex> lck(storage_mtx);
pending_ops.emplace([=](SecureDht& dht) {
@@ -385,16 +385,21 @@ DhtRunner::cancelPut(const InfoHash& h , const Value::Id& id)
}
void
DhtRunner::putSigned(InfoHash hash, Value&& value, Dht::DoneCallback cb)
DhtRunner::putSigned(InfoHash hash, std::shared_ptr<Value> value, Dht::DoneCallback cb)
{
std::lock_guard<std::mutex> lck(storage_mtx);
auto sv = std::make_shared<Value>(std::move(value));
pending_ops.emplace([=](SecureDht& dht) {
dht.putSigned(hash, sv, cb);
dht.putSigned(hash, value, cb);
});
cv.notify_all();
}
void
DhtRunner::putSigned(InfoHash hash, Value&& value, Dht::DoneCallback cb)
{
putSigned(hash, std::make_shared<Value>(std::move(value)), cb);
}
void
DhtRunner::putSigned(const std::string& key, Value&& value, Dht::DoneCallbackSimple cb)
{
@@ -402,16 +407,21 @@ DhtRunner::putSigned(const std::string& key, Value&& value, Dht::DoneCallbackSim
}
void
DhtRunner::putEncrypted(InfoHash hash, InfoHash to, Value&& value, Dht::DoneCallback cb)
DhtRunner::putEncrypted(InfoHash hash, InfoHash to, std::shared_ptr<Value> value, Dht::DoneCallback cb)
{
std::lock_guard<std::mutex> lck(storage_mtx);
auto sv = std::make_shared<Value>(std::move(value));
std::lock_guard<std::mutex> lck(storage_mtx);
pending_ops.emplace([=](SecureDht& dht) {
dht.putEncrypted(hash, to, sv, cb);
dht.putEncrypted(hash, to, value, cb);
});
cv.notify_all();
}
void
DhtRunner::putEncrypted(InfoHash hash, InfoHash to, Value&& value, Dht::DoneCallback cb)
{
putEncrypted(hash, to, std::make_shared<Value>(std::move(value)), cb);
}
void
DhtRunner::putEncrypted(const std::string& key, InfoHash to, Value&& value, Dht::DoneCallback cb)
{