MongoDB C++ Driver current
Loading...
Searching...
No Matches
element.hpp
1// Copyright 2014 MongoDB Inc.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#pragma once
16
17#include <cstddef>
18#include <cstdint>
19
20#include <bsoncxx/document/element.hpp>
21
22#include <bsoncxx/config/prelude.hpp>
23
24namespace bsoncxx {
25inline namespace v_noabi {
26namespace types {
27namespace bson_value {
28class view;
29} // namespace bson_value
30} // namespace types
31
32namespace array {
33
41class BSONCXX_API element : private document::element {
42 public:
43 element();
44
45 using document::element::operator bool;
46
47 using document::element::type;
48
49 using document::element::get_array;
50 using document::element::get_binary;
51 using document::element::get_bool;
52 using document::element::get_code;
53 using document::element::get_codewscope;
54 using document::element::get_date;
55 using document::element::get_dbpointer;
56 using document::element::get_decimal128;
57 using document::element::get_document;
58 using document::element::get_double;
59 using document::element::get_int32;
60 using document::element::get_int64;
61 using document::element::get_maxkey;
62 using document::element::get_minkey;
63 using document::element::get_null;
64 using document::element::get_oid;
65 using document::element::get_regex;
66 using document::element::get_string;
67 using document::element::get_symbol;
68 using document::element::get_timestamp;
69 using document::element::get_undefined;
70 using document::element::get_utf8;
71
72 using document::element::get_value;
73
74 using document::element::operator[];
75
76 using document::element::key;
77 using document::element::keylen;
78 using document::element::length;
79 using document::element::offset;
80 using document::element::raw;
81
82 private:
83 friend class view;
84
85 BSONCXX_PRIVATE explicit element(const std::uint8_t* raw,
86 std::uint32_t length,
87 std::uint32_t offset,
88 std::uint32_t keylen);
89
90 BSONCXX_PRIVATE explicit element(const stdx::string_view key);
91};
92
102BSONCXX_API bool BSONCXX_CALL operator==(const element& elem, const types::bson_value::view& v);
103BSONCXX_API bool BSONCXX_CALL operator==(const types::bson_value::view& v, const element& elem);
107
117BSONCXX_API bool BSONCXX_CALL operator!=(const element& elem, const types::bson_value::view& v);
118BSONCXX_API bool BSONCXX_CALL operator!=(const types::bson_value::view& v, const element& elem);
122
123} // namespace array
124
125} // namespace v_noabi
126} // namespace bsoncxx
127
128#include <bsoncxx/config/postlude.hpp>
A variant view type that accesses values in serialized BSON arrays.
Definition element.hpp:41
BSONCXX_API bool BSONCXX_CALL operator==(const element &elem, const types::bson_value::view &v)
Convenience methods to compare for equality against a bson_value.
BSONCXX_API bool BSONCXX_CALL operator!=(const element &elem, const types::bson_value::view &v)
Convenience methods to compare for equality against a bson_value.
A read-only, non-owning view of a BSON document.
Definition view.hpp:39
A variant view type that accesses values in serialized BSON documents.
Definition element.hpp:76
A view-only variant that can contain any BSON type.
Definition view.hpp:44
The top-level namespace for bsoncxx library entities.
Definition element.hpp:24