Couchbase C++ SDK
1.4.0 (rev. 59aa900)
Toggle main menu visibility
Loading...
Searching...
No Matches
replace.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/subdoc/fwd/command.hxx
>
21
#include <
couchbase/subdoc/fwd/command_bundle.hxx
>
22
23
#include <
couchbase/subdoc/mutate_in_macro.hxx
>
24
25
#include <string>
26
#include <vector>
27
28
namespace
couchbase
29
{
30
class
mutate_in_specs
;
31
32
namespace
subdoc
33
{
40
class
replace
41
{
42
public
:
52
auto
xattr
(
bool
value =
true
) -> replace&
53
{
54
xattr_ = value;
55
return
*
this
;
56
}
57
67
auto
binary
(
bool
value =
true
) -> replace&
68
{
69
binary_ = value;
70
return
*
this
;
71
}
72
73
private
:
74
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
75
friend
couchbase::mutate_in_specs
;
76
#endif
77
78
replace
(std::string path, std::vector<std::byte> value)
79
: path_(std::move(path))
80
, value_(std::move(value))
81
{
82
}
83
84
replace(std::string path, std::vector<std::byte> value,
bool
expand_macro)
85
: path_(std::move(path))
86
, value_(std::move(value))
87
, expand_macro_(expand_macro)
88
{
89
}
90
91
replace(std::string path,
mutate_in_macro
value)
92
: path_(std::move(path))
93
, value_(
to_binary
(value))
94
, expand_macro_(true)
95
{
96
}
97
98
void
encode(core::impl::subdoc::command_bundle& bundle)
const
;
99
100
std::string path_;
101
std::vector<std::byte> value_;
102
bool
xattr_{
false
};
103
bool
expand_macro_{
false
};
104
bool
binary_{
false
};
105
};
106
}
// namespace subdoc
107
}
// namespace couchbase
couchbase::mutate_in_specs
Definition
mutate_in_specs.hxx:80
couchbase::subdoc::replace
An intention to perform a SubDocument replace operation.
Definition
replace.hxx:41
couchbase::subdoc::replace::binary
auto binary(bool value=true) -> replace &
Sets whether the value should be treated as a binary.
Definition
replace.hxx:67
couchbase::subdoc::replace::xattr
auto xattr(bool value=true) -> replace &
Sets that this is an extended attribute (xattr) field.
Definition
replace.hxx:52
command.hxx
command_bundle.hxx
mutate_in_macro.hxx
couchbase::subdoc
Definition
array_add_unique.hxx:33
couchbase::subdoc::mutate_in_macro
mutate_in_macro
Definition
mutate_in_macro.hxx:29
couchbase::subdoc::to_binary
auto to_binary(mutate_in_macro value) -> std::vector< std::byte >
Converts macro into binary array suitable for sending to the server.
couchbase
Represents a single item from the result of scan().
Definition
allow_querying_search_index_options.hxx:28
couchbase
subdoc
replace.hxx
Generated by
1.17.0