Couchbase C++ SDK 1.2.0 (rev. c2439a4)
Loading...
Searching...
No Matches
transaction_query_options.hxx
Go to the documentation of this file.
1/*
2 * Copyright 2021-Present Couchbase, Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#pragma once
17
19
21{
22class transaction_context;
23
32{
33public:
35 {
36 // set defaults specific to query in transactions.
37 opts_.metrics(true);
38 }
39
50 template<typename Value>
51 auto raw(const std::string& key, const Value& value) -> transaction_query_options&
52 {
53 opts_.raw(key, value);
54 return *this;
55 }
56
66 auto ad_hoc(bool value) -> transaction_query_options&
67 {
68 opts_.adhoc(value);
69 return *this;
70 }
71
81 {
82 opts_.scan_consistency(scan_consistency);
83 return *this;
84 }
85
95 {
96 opts_.profile(mode);
97 return *this;
98 }
99
108 auto client_context_id(const std::string& id) -> transaction_query_options&
109 {
110 opts_.client_context_id(id);
111 return *this;
112 }
113
122 auto scan_wait(std::chrono::milliseconds scan_wait) -> transaction_query_options&
123 {
124 opts_.scan_wait(scan_wait);
125 return *this;
126 }
127
137 {
138 opts_.readonly(readonly);
139 return *this;
140 }
141
150 auto scan_cap(std::uint64_t cap) -> transaction_query_options&
151 {
152 opts_.scan_cap(cap);
153 return *this;
154 }
155
164 auto pipeline_batch(std::uint64_t batch) -> transaction_query_options&
165 {
166 opts_.pipeline_batch(batch);
167 return *this;
168 }
169
178 auto pipeline_cap(std::uint64_t cap) -> transaction_query_options&
179 {
180 opts_.pipeline_cap(cap);
181 return *this;
182 }
183
193 template<typename... Parameters>
194 auto positional_parameters(const Parameters&... parameters)
195 {
196 opts_.positional_parameters(parameters...);
197 return *this;
198 }
199
209 template<typename... Parameters>
210 auto named_parameters(const Parameters&... parameters) -> transaction_query_options&
211 {
212 opts_.named_parameters(parameters...);
213 return *this;
214 }
215
227 {
228 opts_.metrics(metrics);
229 return *this;
230 }
231
241 {
242 opts_.max_parallelism(max);
243 return *this;
244 }
245
254 {
255 opts_.flex_index(flex_index);
256 return *this;
257 }
258
260 auto encoded_raw_options(std::map<std::string, codec::binary, std::less<>> options)
262 {
263 opts_.encoded_raw_options(options);
264 return *this;
265 }
266
268 auto encoded_positional_parameters(std::vector<codec::binary> parameters)
270 {
271 opts_.encoded_positional_parameters(parameters);
272 return *this;
273 }
274
276 auto encoded_named_parameters(std::map<std::string, codec::binary, std::less<>> parameters)
278 {
279 opts_.encoded_named_parameters(parameters);
280 return *this;
281 }
282
284 auto get_query_options() const -> const query_options&
285 {
286 return opts_;
287 }
288
289private:
290 query_options opts_{};
291};
292} // namespace couchbase::transactions
The transaction_query_options are options specific to a query.
Definition transaction_query_options.hxx:32
auto client_context_id(const std::string &id) -> transaction_query_options &
Set a client id for this query.
Definition transaction_query_options.hxx:108
auto raw(const std::string &key, const Value &value) -> transaction_query_options &
Set an option which isn't exposed explicitly in transaction_query_options.
Definition transaction_query_options.hxx:51
auto profile(query_profile mode) -> transaction_query_options &
Set the profile mode for this query.
Definition transaction_query_options.hxx:94
auto scan_cap(std::uint64_t cap) -> transaction_query_options &
Set the scan cap for this query.
Definition transaction_query_options.hxx:150
transaction_query_options()
Definition transaction_query_options.hxx:34
auto scan_consistency(query_scan_consistency scan_consistency) -> transaction_query_options &
Set the query_scan_consistency for this query.
Definition transaction_query_options.hxx:80
auto metrics(bool metrics) -> transaction_query_options &
Set metrics for this query.
Definition transaction_query_options.hxx:226
auto flex_index(bool flex_index) -> transaction_query_options &
Tells the query engine to use a flex index (utilizing the search service).
Definition transaction_query_options.hxx:253
auto max_parallelism(std::uint64_t max) -> transaction_query_options &
Set max parallelism for this query.
Definition transaction_query_options.hxx:240
auto scan_wait(std::chrono::milliseconds scan_wait) -> transaction_query_options &
Set the scan_wait time.
Definition transaction_query_options.hxx:122
auto pipeline_cap(std::uint64_t cap) -> transaction_query_options &
Set pipeline cap for this query.
Definition transaction_query_options.hxx:178
auto positional_parameters(const Parameters &... parameters)
Set positional parameters for this query.
Definition transaction_query_options.hxx:194
auto readonly(bool readonly) -> transaction_query_options &
Set the readonly hint for this query.
Definition transaction_query_options.hxx:136
auto pipeline_batch(std::uint64_t batch) -> transaction_query_options &
Set pipeline_batch size for this query.
Definition transaction_query_options.hxx:164
auto named_parameters(const Parameters &... parameters) -> transaction_query_options &
Set named parameters for this query.
Definition transaction_query_options.hxx:210
auto ad_hoc(bool value) -> transaction_query_options &
Set ad_hoc.
Definition transaction_query_options.hxx:66
std::vector< std::byte > binary
Definition encoded_value.hxx:25
Definition transactions.hxx:28
query_profile
Definition query_profile.hxx:22
@ max
Definition search_sort_field_mode.hxx:25
query_scan_consistency
Definition query_scan_consistency.hxx:22
auto encoded_raw_options(std::map< std::string, codec::binary, std::less<> > options) -> query_options &
Set map of raw options for a query.
Definition query_options.hxx:574
auto encoded_named_parameters(std::map< std::string, codec::binary, std::less<> > parameters) -> query_options &
Set map of named parameters for a query.
Definition query_options.hxx:616
auto encoded_positional_parameters(std::vector< codec::binary > parameters) -> query_options &
Set list of positional parameters for a query.
Definition query_options.hxx:596