Couchbase C++ SDK
1.4.0 (rev. 59aa900)
Toggle main menu visibility
Loading...
Searching...
No Matches
query_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
20
#include <
couchbase/query_meta_data.hxx
>
21
22
#include <
couchbase/codec/encoded_value.hxx
>
23
#include <
couchbase/codec/serializer_traits.hxx
>
24
25
#include <vector>
26
27
namespace
couchbase
28
{
29
30
namespace
codec
31
{
32
class
tao_json_serializer
;
33
}
34
41
class
query_result
42
{
43
public
:
48
query_result
() =
default
;
49
54
query_result
(
query_meta_data
meta_data
, std::vector<codec::binary> rows)
55
: meta_data_{ std::move(
meta_data
) }
56
, rows_{ std::move(rows) }
57
{
58
}
59
69
[[nodiscard]]
auto
meta_data
() const -> const
query_meta_data
&
70
{
71
return
meta_data_;
72
}
73
80
[[nodiscard]]
auto
rows_as_binary
() const -> const std::vector<
codec
::binary>&
81
{
82
return
rows_;
83
}
84
85
template
<
typename
Serializer =
codec::tao_json_serializer
,
86
typename
Document =
typename
Serializer::document_type,
87
std::enable_if_t<codec::is_serializer_v<Serializer>,
bool
> =
true
>
88
[[nodiscard]]
auto
rows_as
() const -> std::vector<Document>
89
{
90
std::vector<Document> rows;
91
rows.reserve(rows_.size());
92
for
(
const
auto
& row : rows_) {
93
rows.emplace_back(Serializer::template deserialize<Document>(row));
94
}
95
return
rows;
96
}
97
98
private
:
99
query_meta_data
meta_data_{};
100
std::vector<codec::binary> rows_{};
101
};
102
}
// namespace couchbase
couchbase::codec::tao_json_serializer
Definition
tao_json_serializer.hxx:42
couchbase::query_meta_data
Stores any non-rows results related to the execution of a particular N1QL query.
Definition
query_meta_data.hxx:39
couchbase::query_result::rows_as_binary
auto rows_as_binary() const -> const std::vector< codec::binary > &
Definition
query_result.hxx:80
couchbase::query_result::rows_as
auto rows_as() const -> std::vector< Document >
Definition
query_result.hxx:88
couchbase::query_result::query_result
query_result()=default
couchbase::query_result::query_result
query_result(query_meta_data meta_data, std::vector< codec::binary > rows)
Definition
query_result.hxx:54
couchbase::query_result::meta_data
auto meta_data() const -> const query_meta_data &
Returns the query_meta_data giving access to the additional metadata associated with this query.
Definition
query_result.hxx:69
encoded_value.hxx
couchbase::codec
Definition
analytics_options.hxx:36
couchbase
Represents a single item from the result of scan().
Definition
allow_querying_search_index_options.hxx:28
query_meta_data.hxx
serializer_traits.hxx
couchbase
query_result.hxx
Generated by
1.17.0