Couchbase C++ SDK
1.4.0 (rev. 59aa900)
Toggle main menu visibility
Loading...
Searching...
No Matches
upsert_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
20
#include <
couchbase/codec/encoded_value.hxx
>
21
#include <
couchbase/common_durability_options.hxx
>
22
#include <
couchbase/error.hxx
>
23
#include <
couchbase/expiry.hxx
>
24
#include <
couchbase/mutation_result.hxx
>
25
26
#include <chrono>
27
#include <functional>
28
#include <memory>
29
#include <optional>
30
#include <vector>
31
32
namespace
couchbase
33
{
34
41
struct
upsert_options
:
public
common_durability_options
<upsert_options> {
48
struct
built
:
public
common_durability_options
<upsert_options>
::built
{
49
const
std::uint32_t
expiry
;
50
const
bool
preserve_expiry
;
51
};
52
64
[[nodiscard]]
auto
build
() const ->
built
65
{
66
auto
base =
build_common_durability_options
();
67
return
{ base, expiry_, preserve_expiry_ };
68
}
69
86
auto
preserve_expiry
(
bool
preserve) ->
upsert_options
&
87
{
88
preserve_expiry_ = preserve;
89
return
self
();
90
}
91
105
auto
expiry
(std::chrono::seconds duration) ->
upsert_options
&
106
{
107
expiry_ = core::impl::expiry_relative(duration);
108
return
self
();
109
}
110
121
auto
expiry
(std::chrono::system_clock::time_point time_point) ->
upsert_options
&
122
{
123
expiry_ = core::impl::expiry_absolute(time_point);
124
return
self
();
125
}
126
127
private
:
128
std::uint32_t expiry_{ 0 };
129
bool
preserve_expiry_{
false
};
130
};
131
138
using
upsert_handler
= std::function<void(
error
,
mutation_result
)>;
139
}
// namespace couchbase
couchbase::common_durability_options
Common options that used by most operations.
Definition
common_durability_options.hxx:39
couchbase::common_durability_options< upsert_options >::build_common_durability_options
auto build_common_durability_options() const -> built
Definition
common_durability_options.hxx:115
couchbase::common_options< upsert_options >::self
auto self() -> upsert_options &
Definition
common_options.hxx:116
couchbase::error
Definition
error.hxx:31
couchbase::mutation_result
Represents result of mutation operations.
Definition
mutation_result.hxx:35
common_durability_options.hxx
encoded_value.hxx
error.hxx
expiry.hxx
mutation_result.hxx
couchbase
Represents a single item from the result of scan().
Definition
allow_querying_search_index_options.hxx:28
couchbase::upsert_handler
std::function< void(error, mutation_result)> upsert_handler
The signature for the handler of the upsert() operation.
Definition
upsert_options.hxx:138
couchbase::upsert_options::built
Immutable value object representing consistent options.
Definition
upsert_options.hxx:48
couchbase::upsert_options::built::preserve_expiry
const bool preserve_expiry
Definition
upsert_options.hxx:50
couchbase::upsert_options::built::expiry
const std::uint32_t expiry
Definition
upsert_options.hxx:49
couchbase::upsert_options
Options for upsert().
Definition
upsert_options.hxx:41
couchbase::upsert_options::expiry
auto expiry(std::chrono::system_clock::time_point time_point) -> upsert_options &
Sets the expiry for the document.
Definition
upsert_options.hxx:121
couchbase::upsert_options::preserve_expiry
auto preserve_expiry(bool preserve) -> upsert_options &
Specifies whether an existing document's expiry should be preserved.
Definition
upsert_options.hxx:86
couchbase::upsert_options::build
auto build() const -> built
Validates options and returns them as an immutable value.
Definition
upsert_options.hxx:64
couchbase::upsert_options::expiry
auto expiry(std::chrono::seconds duration) -> upsert_options &
Sets the expiry for the document.
Definition
upsert_options.hxx:105
couchbase
upsert_options.hxx
Generated by
1.17.0