Realm C++ SDK Versão C++ v2.2.0

bson.hpp

1
2//
3// Autores 2024 Realm Inc.
4//
5// Licenciado sob a Licença Apache, Versão 2.0 (a "Licença");
6// você não pode usar este arquivo, exceto em conformidade com a Licença.
7// Você pode obter uma cópia da Licença em
8//
9// http://www.apache.org/license/LICENSE-2.0
10//
11// A menos que exigido pela lei aplicável ou acordado por escrito, o software
12// distribuído sob a Licença é distribuído "Como está",
13// sem garantias ou condições de qualquer tipo, Express ou implícitas.
14// Consulte a Licença para obter as permissões específicas de domínio do idioma e
15// limitações da Licença.
16//
18
19#ifndef REALMCXX_BSON_HPP
20#define RealMCXX_BSON_HPP
21
22#include <cprealm/types.hpp>
23#include <cprealm/internal/bridge/utils.hpp>
24#include <any>
25
26namespace Realm {
27 namespace BSON {
28 classe BSON;
29 classe Documento BSON;
30 estrutura RegularExpression;
31 }
32
33
60 estrutura, estrutura bsoncxx {
61
62 usando array = std::vector<bsoncxx>;
63
64 tipo de classe enumeração {
65 b_null,
66 b_int32,
67 b_int64,
68 b_bool,
69 b_double,
70 b_string,
71 b_binary,
72 b_timestamp,
73 b_datetime,
74 b_objectId,
75 b_decimal128,
76 b_regular_expression,
77 b_max_key,
78 b_min_key,
79 b_document,
80 b_array,
81 b_uuid
82 };
83
84 estrutura, estrutura documento {
85 usando CoreDocument = realm::bson::BsonDocument;
86
87 estrutura, estrutura valor {
88 valor& operador=(const bsoncxx& v);
89 operador, operador bsoncxx() const;
90 const std::string key;
91 privado:
92 amigo estrutura, estrutura bsoncxx;
93 explícito valor(CoreDocument* d, const std::string& k)
94 : key(k), m_document(d) {}
95 CoreDocument* m_document;
96 };
97
98 estrutura, estrutura iterador {
99 std::pair<std::string, bsoncxx> operador*();
100 iteradore operador++();
101 iteradore operador--();
102 iteradore operador++(int);
103 iteradore operador--(int);
104 operador de bool !=(const iteradore rhs) const noexceto;
105 bool operator==(const iteradore rhs) const noexceto;
106 privado:
107 amigo estrutura, estrutura document;
108 iterator(std::any&& i) : m_iterator(i) { }
109 std::any m_iterator;
110 };
111 iterador begin();
112 iterador end();
113
114 documento() noexceto;
115 documento(const std::initializer_list<std::pair<std::string, bsoncxx>>&) noexceto;
116 document(const document&);
118 ~documento();
119 documento& operator=( documentoconst &);
120 documento& operator=(documento&&);
121 inserção vazia (const std::string& chave, const bsoncxx& valor);
122 bool empty();
123 size_t size() const;
124 operador de valor [](const std::string&);
125 operador CoreDocument() const;
126 documento(CoreDocument&) noexceto;
127 privado:
128 estrutura de amigo bsoncxx;
129#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
130 internal::bridge::storage::BsonIndexedMap m_document[1];
131#else
132 std::shared_ptr<CoreDocument> m_document;
133#endif
134 };
135
137 estrutura, estrutura min_key {};
139 estrutura, estrutura max_key {};
140
143 estrutura, estrutura regular_expression {
144 opção de classe enumeração : uint8_t {
145 nenhum,
146 ignore_case = 1,
147 multilinha = 2,
148 dotall = 4,
149 estendido = 8
150 };
151 expressão regular(const std::string& padrão, const std::string& opções);
152 expressão regular(const std::string& padrão, opções de opção);
154 opção get_options() const;
155 std::string get_pattern() const;
156 operador realm::bson::RegularExpression() const;
157 privado:
158 amigo estrutura, estrutura bsoncxx;
159 regular_expression(const Realm::bson::RegularExpression&);
160 option m_options;
161 std::string m_pattern;
162 };
163
165 estrutura, estrutura timestamp {
166 explícito carimbo de data/hora (uint32_t segundos, uint32_t incremento) : m_seconds(segundos), m_increment(increment)
167 uint32_t get_seconds() const noexceto { return m_seconds; }
168 uint32_t get_increment() const noexceto { return m_increment; }
169 privado:
170 amigo estrutura, estrutura bsoncxx;
171 const uint32_t m_seconds;
172 const uint32_t m_increment;
173 };
174
176 estrutura, estrutura data {
177 explícito data (const std::chrono::time_pointcada<std::chrono::system_clock>vez mais
178 std::chrono::time_point<std::chrono::system_clock> get_date() const noexceto { return m_date; }
179 privado:
180 amigo estrutura, estrutura bsoncxx;
181 const std::chrono::time_point<std::chrono::system_clock> m_date;
182 };
183
184 bsoncxx() noexceto;
185 ~bsoncxx() noexceto;
186 bsoncxx(const bsoncxx&) noexceto;
187 bsoncxx(bsoncxx&&) noexcept;
188 bsoncxx& operator=(const bsoncxx&) noexceto;
189 bsoncxx& operator=(bsoncxx&&) noexceto;
190
194 bsoncxx(int32_t) noexceto;
195 bsoncxx(int64_t) noexceto;
196 bsoncxx(bool) noexceto;
197 bsoncxx(double) noexceto;
198 bsoncxx(min_key) noexceto;
199 bsoncxx(max_key) noexceto;
200 bsoncxx( carimbode data/hora constante &) noexceto;
201 bsoncxx( dataconst &) noexceto;
202 bsoncxx(const decimal128&) noexceto;
203 bsoncxx(const object_id&) noexceto;
204 bsoncxx(const uuid&) noexcept;
205 bsoncxx(const regular_expression&) noexceto;
206 bsoncxx(const std::vector<uint8_t>&) noexceto;
207 bsoncxx(const std::string&) noexceto;
208 bsoncxx(const chart *) noexceto ;
209 bsoncxx( documentoconst &) noexceto;
210 bsoncxx(const array&) noexceto;
211 digite get_type() const;
212 operador Realm::bson::Bson() const;
213
214 operador std::nullopt_t() const;
215 operador int32_t() const;
216 operador int64_t() const;
217 operador bool() const;
218 operador double() const;
219 operador min_key() const;
220 operador max_key() const;
221 carimbo de data/ hora do operador () const;
222 data do operador () const;
223 operador decimal128() const;
224 operador object_id() const;
225 operador uuid() const;
226 operador regular_expression() const;
227 operador std::vector<uint8_t>() const;
228 operador std::string() const;
229 documento do operador () const;
230 operador array() const;
231
232 std::string to_string() const;
233 std::string to_json() const;
234 bsoncxx(Realm::bson::Bson&) noexceto;
235 privado:
236#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
237 internal::bridge::storage::Bson m_bson[1];
238#else
239 std::shared_ptr<realm::bson::Bson> m_bson;
240#endif
241 };
242
243 bool operator==(const bsoncxx& lhs, const bsoncxx& rhs);
244 operador de bool !=(const bsoncxx& lhs, const bsoncxx& rhs);
245 bool operator==(const bsoncxx:: documento& lhs, const bsoncxx:: documento& rhs);
246 operador de bool !=(const bsoncxx:: documento& lhs, const bsoncxx:: documento& rhs);
247 bool operator==(const bsoncxx::regular_expression& lhs, const bsoncxx::regular_expression& rhs) noexceto;
248 operador de bool !=(const bsoncxx::regular_expression& lhs, const bsoncxx::regular_expression& rhs) noexceto;
249 bsoncxx::regular_expression::operador de opção|(const bsoncxx::regular_expression::opção& lhs,
250 const bsoncxx::regular_expression::option& rhs) noexceto;
251 bsoncxx::regular_expression::option operator&(const bsoncxx::regular_expression::option& lhs,
252 const bsoncxx::regular_expression::option& rhs) noexceto;
253} // namespace realm
254
255#endif//REALMCXX_BSON_HPP
Um tipo que representa uma data/hora BSON.
Definição: bson.hpp:176
Definição: bson.hpp:98
Definição: bson.hpp:87
Definição: bson.hpp:84
MaxKey sempre será o maior valor ao comparar com outros BSON types.
Definição: bson.hpp:139
O MinKey sempre será o menor valor ao comparar com outros BSON types.
Definição: bson.hpp:137
Definição: bson.hpp:143
Um tipo que representa um carimbo de data/hora BSON.
Definição: bson.hpp:165
Definição: bson.hpp:60
Definição: tipos.hpp:75
Definição: tipos.hpp:56
Definição: tipos.hpp:35