Couchbase C++ SDK 1.0.2 (rev. 51f4775)
Loading...
Searching...
No Matches
get_replica_result.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/result.hxx>
22
23#include <vector>
24
25namespace couchbase
26{
27
36{
37public:
42 get_replica_result() = default;
43
55 : result{ cas }
56 , is_replica_{ is_replica }
57 , value_{ std::move(value) }
58 {
59 }
60
68 [[nodiscard]] auto is_replica() const -> bool
69 {
70 return is_replica_;
71 }
72
90 template<typename Transcoder, std::enable_if_t<codec::is_transcoder_v<Transcoder>, bool> = true>
91 [[nodiscard]] auto content_as() const -> typename Transcoder::document_type
92 {
93 return Transcoder::decode(value_);
94 }
95
107 template<typename Document,
108 typename Transcoder = codec::default_json_transcoder,
109 std::enable_if_t<!codec::is_transcoder_v<Document>, bool> = true,
110 std::enable_if_t<codec::is_transcoder_v<Transcoder>, bool> = true>
111 [[nodiscard]] auto content_as() const -> Document
112 {
113 return Transcoder::template decode<Document>(value_);
114 }
115
116private:
117 bool is_replica_{ false };
118 codec::encoded_value value_{};
119};
120
121} // namespace couchbase
CAS is a special type that represented in protocol using unsigned 64-bit integer, but only equality c...
Definition cas.hxx:34
Represents result of collection::get_any_replica operations, also returned by collection::get_all_rep...
Definition get_replica_result.hxx:36
auto content_as() const -> typename Transcoder::document_type
Decodes content of the document using given transcoder.
Definition get_replica_result.hxx:91
auto is_replica() const -> bool
Definition get_replica_result.hxx:68
get_replica_result(couchbase::cas cas, bool is_replica, codec::encoded_value value)
Constructs result for get_any_replica operation, or an entry for get_all_replicas operation.
Definition get_replica_result.hxx:54
auto content_as() const -> Document
Decodes content of the document using given codec.
Definition get_replica_result.hxx:111
Base class for operations of data service.
Definition result.hxx:32
json_transcoder< tao_json_serializer > default_json_transcoder
Definition default_json_transcoder.hxx:28
Represents a single item from the result of collection::scan()
Definition allow_querying_search_index_options.hxx:28
Definition encoded_value.hxx:27