Couchbase C++ SDK 1.0.1 (rev. 58d46d7)
Loading...
Searching...
No Matches
get_options.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * Copyright 2020-Present Couchbase, Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#pragma once
19
21#include <couchbase/error.hxx>
23
24#include <chrono>
25#include <functional>
26#include <memory>
27#include <optional>
28
29namespace couchbase
30{
37struct get_options : public common_options<get_options> {
44 struct built : public common_options<get_options>::built {
45 const bool with_expiry;
46 const std::vector<std::string> projections;
47 };
48
60 [[nodiscard]] auto build() const -> built
61 {
62 return { build_common_options(), with_expiry_, projections_ };
63 }
64
75 auto with_expiry(bool return_expiry) -> get_options&
76 {
77 with_expiry_ = return_expiry;
78 return self();
79 }
80
94 auto project(std::vector<std::string> field_paths) -> get_options&
95 {
96 projections_ = std::move(field_paths);
97 return self();
98 }
99
100private:
101 bool with_expiry_{ false };
102 std::vector<std::string> projections_{};
103};
104
111using get_handler = std::function<void(error, get_result)>;
112} // namespace couchbase
Common options that used by most operations.
Definition common_options.hxx:37
auto self() -> get_options &
Allows to return the right options builder instance for child implementations.
Definition common_options.hxx:102
auto build_common_options() const -> built
Definition common_options.hxx:89
Definition error.hxx:30
Represents result of collection::get.
Definition get_result.hxx:38
Represents a single item from the result of collection::scan()
Definition allow_querying_search_index_options.hxx:28
std::function< void(error, get_result)> get_handler
The signature for the handler of the collection::get() operation.
Definition get_options.hxx:111
Immutable value object representing consistent options.
Definition get_options.hxx:44
const bool with_expiry
Definition get_options.hxx:45
const std::vector< std::string > projections
Definition get_options.hxx:46
Options for collection::get().
Definition get_options.hxx:37
auto build() const -> built
Validates options and returns them as an immutable value.
Definition get_options.hxx:60
auto project(std::vector< std::string > field_paths) -> get_options &
Allows to specify a custom list paths to fetch from the document instead of the whole.
Definition get_options.hxx:94
auto with_expiry(bool return_expiry) -> get_options &
If set to true, the get will fetch the expiry for the document as well and return it as part of the g...
Definition get_options.hxx:75