diff --git a/include/opendht/dhtrunner.h b/include/opendht/dhtrunner.h index dc342bf9951c2e73a901ad1d02eddcd6f6543bda..101442266165265d51ddcdaf7a28f668afd90b23 100644 --- a/include/opendht/dhtrunner.h +++ b/include/opendht/dhtrunner.h @@ -156,16 +156,16 @@ public: void cancelListen(InfoHash h, size_t token); void cancelListen(InfoHash h, std::shared_future<size_t> token); - void put(InfoHash hash, std::shared_ptr<Value> value, DoneCallback cb={}, bool permanent = false); - void put(InfoHash hash, std::shared_ptr<Value> value, DoneCallbackSimple cb, bool permanent = false) { - put(hash, value, bindDoneCb(cb), permanent); + void put(InfoHash hash, std::shared_ptr<Value> value, DoneCallback cb={}, time_point created=time_point::max(), bool permanent = false); + void put(InfoHash hash, std::shared_ptr<Value> value, DoneCallbackSimple cb, time_point created=time_point::max(), bool permanent = false) { + put(hash, value, bindDoneCb(cb), created, permanent); } - void put(InfoHash hash, Value&& value, DoneCallback cb={}, bool permanent = false); - void put(InfoHash hash, Value&& value, DoneCallbackSimple cb, bool permanent = false) { - put(hash, std::forward<Value>(value), bindDoneCb(cb), permanent); + void put(InfoHash hash, Value&& value, DoneCallback cb={}, time_point created=time_point::max(), bool permanent = false); + void put(InfoHash hash, Value&& value, DoneCallbackSimple cb, time_point created=time_point::max(), bool permanent = false) { + put(hash, std::forward<Value>(value), bindDoneCb(cb), created, permanent); } - void put(const std::string& key, Value&& value, DoneCallbackSimple cb={}, bool permanent = false); + void put(const std::string& key, Value&& value, DoneCallbackSimple cb={}, time_point created=time_point::max(), bool permanent = false); void cancelPut(const InfoHash& h, const Value::Id& id); diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp index ed24473d877a296661aebbfdb04a3b463d003559..1d5354366d4c2dff54ee1615abadc0eebb51dc08 100644 --- a/src/dhtrunner.cpp +++ b/src/dhtrunner.cpp @@ -484,30 +484,30 @@ DhtRunner::cancelListen(InfoHash h, std::shared_future<size_t> token) } void -DhtRunner::put(InfoHash hash, Value&& value, DoneCallback cb, bool permanent) +DhtRunner::put(InfoHash hash, Value&& value, DoneCallback cb, time_point created, bool permanent) { std::lock_guard<std::mutex> lck(storage_mtx); auto sv = std::make_shared<Value>(std::move(value)); pending_ops.emplace([=](SecureDht& dht) { - dht.put(hash, sv, cb, {}, permanent); + dht.put(hash, sv, cb, created, permanent); }); cv.notify_all(); } void -DhtRunner::put(InfoHash hash, std::shared_ptr<Value> value, DoneCallback cb, bool permanent) +DhtRunner::put(InfoHash hash, std::shared_ptr<Value> value, DoneCallback cb, time_point created, bool permanent) { std::lock_guard<std::mutex> lck(storage_mtx); pending_ops.emplace([=](SecureDht& dht) { - dht.put(hash, value, cb, {}, permanent); + dht.put(hash, value, cb, created, permanent); }); cv.notify_all(); } void -DhtRunner::put(const std::string& key, Value&& value, DoneCallbackSimple cb, bool permanent) +DhtRunner::put(const std::string& key, Value&& value, DoneCallbackSimple cb, time_point created, bool permanent) { - put(InfoHash::get(key), std::forward<Value>(value), cb, permanent); + put(InfoHash::get(key), std::forward<Value>(value), cb, created, permanent); } void