Skip to content
Snippets Groups Projects
Commit 446da4b7 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

value: use move in where

parent aa958b0f
Branches
Tags
No related merge requests found
...@@ -804,11 +804,11 @@ struct OPENDHT_PUBLIC Where ...@@ -804,11 +804,11 @@ struct OPENDHT_PUBLIC Where
* *
* @return the resulting Where instance. * @return the resulting Where instance.
*/ */
Where& id(Value::Id id) { Where&& id(Value::Id id) {
FieldValue fv {Value::Field::Id, id}; FieldValue fv {Value::Field::Id, id};
if (std::find(filters_.begin(), filters_.end(), fv) == filters_.end()) if (std::find(filters_.begin(), filters_.end(), fv) == filters_.end())
filters_.emplace_back(std::move(fv)); filters_.emplace_back(std::move(fv));
return *this; return std::move(*this);
} }
/** /**
...@@ -818,11 +818,11 @@ struct OPENDHT_PUBLIC Where ...@@ -818,11 +818,11 @@ struct OPENDHT_PUBLIC Where
* *
* @return the resulting Where instance. * @return the resulting Where instance.
*/ */
Where& valueType(ValueType::Id type) { Where&& valueType(ValueType::Id type) {
FieldValue fv {Value::Field::ValueType, type}; FieldValue fv {Value::Field::ValueType, type};
if (std::find(filters_.begin(), filters_.end(), fv) == filters_.end()) if (std::find(filters_.begin(), filters_.end(), fv) == filters_.end())
filters_.emplace_back(std::move(fv)); filters_.emplace_back(std::move(fv));
return *this; return std::move(*this);
} }
/** /**
...@@ -832,11 +832,11 @@ struct OPENDHT_PUBLIC Where ...@@ -832,11 +832,11 @@ struct OPENDHT_PUBLIC Where
* *
* @return the resulting Where instance. * @return the resulting Where instance.
*/ */
Where& owner(InfoHash owner_pk_hash) { Where&& owner(InfoHash owner_pk_hash) {
FieldValue fv {Value::Field::OwnerPk, owner_pk_hash}; FieldValue fv {Value::Field::OwnerPk, owner_pk_hash};
if (std::find(filters_.begin(), filters_.end(), fv) == filters_.end()) if (std::find(filters_.begin(), filters_.end(), fv) == filters_.end())
filters_.emplace_back(std::move(fv)); filters_.emplace_back(std::move(fv));
return *this; return std::move(*this);
} }
/** /**
...@@ -846,11 +846,11 @@ struct OPENDHT_PUBLIC Where ...@@ -846,11 +846,11 @@ struct OPENDHT_PUBLIC Where
* *
* @return the resulting Where instance. * @return the resulting Where instance.
*/ */
Where& seq(uint16_t seq_no) { Where&& seq(uint16_t seq_no) {
FieldValue fv {Value::Field::SeqNum, seq_no}; FieldValue fv {Value::Field::SeqNum, seq_no};
if (std::find(filters_.begin(), filters_.end(), fv) == filters_.end()) if (std::find(filters_.begin(), filters_.end(), fv) == filters_.end())
filters_.emplace_back(std::move(fv)); filters_.emplace_back(std::move(fv));
return *this; return std::move(*this);
} }
/** /**
...@@ -860,11 +860,11 @@ struct OPENDHT_PUBLIC Where ...@@ -860,11 +860,11 @@ struct OPENDHT_PUBLIC Where
* *
* @return the resulting Where instance. * @return the resulting Where instance.
*/ */
Where& userType(std::string_view user_type) { Where&& userType(std::string_view user_type) {
FieldValue fv {Value::Field::UserType, Blob {user_type.begin(), user_type.end()}}; FieldValue fv {Value::Field::UserType, Blob {user_type.begin(), user_type.end()}};
if (std::find(filters_.begin(), filters_.end(), fv) == filters_.end()) if (std::find(filters_.begin(), filters_.end(), fv) == filters_.end())
filters_.emplace_back(std::move(fv)); filters_.emplace_back(std::move(fv));
return *this; return std::move(*this);
} }
/** /**
...@@ -873,7 +873,10 @@ struct OPENDHT_PUBLIC Where ...@@ -873,7 +873,10 @@ struct OPENDHT_PUBLIC Where
* @return the resulting Value::Filter. * @return the resulting Value::Filter.
*/ */
Value::Filter getFilter() const { Value::Filter getFilter() const {
if (filters_.empty()) return {}; if (filters_.empty())
return {};
if (filters_.size() == 1)
return filters_[0].getLocalFilter();
std::vector<Value::Filter> fset; std::vector<Value::Filter> fset;
fset.reserve(filters_.size()); fset.reserve(filters_.size());
for (const auto& f : filters_) { for (const auto& f : filters_) {
......
...@@ -326,7 +326,7 @@ SecureDht::listen(const InfoHash& id, GetCallback cb, Value::Filter f, Where w) ...@@ -326,7 +326,7 @@ SecureDht::listen(const InfoHash& id, GetCallback cb, Value::Filter f, Where w)
void void
SecureDht::putSigned(const InfoHash& hash, Sp<Value> val, DoneCallback callback, bool permanent) SecureDht::putSigned(const InfoHash& hash, Sp<Value> val, DoneCallback callback, bool permanent)
{ {
if (not key_) { if (not key_ or not hash or not val) {
if (callback) if (callback)
callback(false, {}); callback(false, {});
return; return;
...@@ -365,7 +365,7 @@ SecureDht::putSigned(const InfoHash& hash, Sp<Value> val, DoneCallback callback, ...@@ -365,7 +365,7 @@ SecureDht::putSigned(const InfoHash& hash, Sp<Value> val, DoneCallback callback,
dht_->put(hash, val, callback, time_point::max(), permanent); dht_->put(hash, val, callback, time_point::max(), permanent);
}, },
Value::IdFilter(val->id), Value::IdFilter(val->id),
std::move(Where().id(val->id)) Where().id(val->id)
); );
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment