query_options: Add constructor for batch mode options (multi-level)
Added explicit move constructors as well as prohibit copy to help disambiguate the constructor delegation
This commit is contained in:
@@ -71,6 +71,17 @@ query_options::query_options(db::consistency_level consistency,
|
||||
{
|
||||
}
|
||||
|
||||
query_options::query_options(query_options&& o, std::vector<std::vector<bytes_view_opt>> value_views)
|
||||
: query_options(std::move(o))
|
||||
{
|
||||
std::vector<query_options> tmp;
|
||||
tmp.reserve(value_views.size());
|
||||
std::transform(value_views.begin(), value_views.end(), std::back_inserter(tmp), [this](auto& vals) {
|
||||
return query_options(_consistency, {}, vals, _skip_metadata, _options, _protocol_version, _serialization_format);
|
||||
});
|
||||
_batch_options = std::move(tmp);
|
||||
}
|
||||
|
||||
query_options::query_options(std::vector<bytes_opt> values)
|
||||
: query_options(
|
||||
db::consistency_level::ONE,
|
||||
|
||||
@@ -61,6 +61,9 @@ private:
|
||||
serialization_format _serialization_format;
|
||||
std::experimental::optional<std::vector<query_options>> _batch_options;
|
||||
public:
|
||||
query_options(query_options&&) = default;
|
||||
query_options(const query_options&) = delete;
|
||||
|
||||
explicit query_options(db::consistency_level consistency,
|
||||
std::experimental::optional<std::vector<sstring_view>> names,
|
||||
std::vector<bytes_opt> values,
|
||||
@@ -77,6 +80,16 @@ public:
|
||||
int32_t protocol_version,
|
||||
serialization_format sf);
|
||||
|
||||
explicit query_options(db::consistency_level consistency,
|
||||
std::vector<std::vector<bytes_view_opt>> value_views,
|
||||
bool skip_metadata,
|
||||
specific_options options,
|
||||
int32_t protocol_version,
|
||||
serialization_format sf);
|
||||
|
||||
// Batch query_options constructor
|
||||
explicit query_options(query_options&&, std::vector<std::vector<bytes_view_opt>> value_views);
|
||||
|
||||
// It can't be const because of prepare()
|
||||
static thread_local query_options DEFAULT;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user