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

mixed.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 CPPREALM_BRIDGE_MIXED_HPP
20#define CPPREALM_BRIDGE_MIXED_HPP
21
22#include <string>
23#include <optional>
24#include <variant>
25#include <cpprealm/internal/bridge/ Property propriedade>
26#include <cpprealm/internal/bridge/binary.hpp>
27#include <cpprealm/internal/bridge/uuid.hpp>
28#include <cpprealm/internal/bridge/timestamp.hpp>
29#include <cpprealm/internal/bridge/obj_key.hpp>
30#include <cpprealm/internal/bridge/object_id.hpp>
31#include <cpprealm/internal/bridge/decimal128.hpp>
32
33namespace Realm {
34 classe Misto;
35
36 usando mixed = std::variant<
37 std::monostate,
38 int64_t,
39 bool,
40 std::string,
41 double,
42 std::vector<uint8_t>,
43 std::chrono::time_point,<std::chrono::system_clock>
44 uuid,
45 object_id,
46 decimal128>;
47}
48
49namespace realm::internal::bridge {
50 enumeração classe data_type {
51 // Observação: as atribuições de valor devem ser mantidas em sincronia com <realm/column_type.h>
52 // Observação: qualquer alteração nesse enumeração é uma alteração interruptiva de formato de arquivo .
53 Int = 0,
54 Bool = 1,
55 string = 2,
56 Binário = 4,
57 Misto = 6,
58 Timestamp = 8,
59 Flutuante = 9,
60 double = 10,
61 Decimais = 11,
62 Link = 12,
63 LinkList = 13,
64 ObjectId = 15,
65 TypedLink = 16,
66 UUID = 17,
67 };
68
69 estrutura, estrutura misto {
70 misto();
71 misto(const mistoe outro);
72 operador misto&=(const misto& outro) ;
73 misto(misto&& outro);
74 operador & misto=(misto&& outro);
75 ~mixed();
76
77 explícito misto(const std::string&);
78 misto(const std::monostate&); //NOLINT(google-explicit-constructor)
79 misto(const int&); //NOLINT(google-explicit-constructor)
80 misto(const int64_t&); //NOLINT(google-explicit-constructor)
81 misto(const double&); //NOLINT(google-explicit-constructor)
82 misto(bool const&); //NOLINT(google-explicit-constructor)
83 misto(const struct uuid&); //NOLINT(google-explicit-constructor)
84 misto(const struct object_id&); //NOLINT(google-explicit-constructor)
85 misto(const struct decimal128e); //NOLINT(google-explicit-constructor)
86 misto(carimbo dedata/ hora da estrutura const &); //NOLINT(google-explicit-constructor)
87 misto(const struct obj_link&); //NOLINT(google-explicit-constructor)
88 misto(const struct obj_key&); //NOLINT(google-explicit-constructor)
89 misto(const struct binário&); //NOLINT(google-explicit-constructor)
90 misto(const Misto&); //NOLINT(google-explicit-constructor)
91 modelo<typename T>
92 misto(const std::opcional<T>& o); //NOLINT(google-explicit-constructor)
93 operador std::string() const; //NOLINT(google-explicit-constructor)
94 operador int64_t() const; //NOLINT(google-explicit-constructor)
95 operador double() const; //NOLINT(google-explicit-constructor)
96 operador bool() const; //NOLINT(google-explicit-constructor)
97 operador, operador ponte::uuid() const; //NOLINT(google-explicit-constructor)
98 operador, operador ponte::object_id() const; //NOLINT(google-explicit-constructor)
99 operador, operador ponte::decimal128() const; //NOLINT(google-explicit-constructor)
100 operador, operador ponte::timestamp() const; //NOLINT(google-explicit-constructor)
101 operador, operador ponte::obj_link() const; //NOLINT(google-explicit-constructor)
102 operador, operador ponte::obj_key() const; //NOLINT(google-explicit-constructor)
103 operador, operador ponte::binário() const; //NOLINT(google-explicit-constructor)
104
105 explícito operador Misto() const;
106
107 [[nodiscard]] data_type type() const noexceto;
108 [[nodiscard]] bool is_null() const noexceto;
109 privado:
110 std::string m_own_string;
111 binário m_own_data;
112#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
113 armazenamento::Misto m_mixed[1];
114#else
115 std::shared_ptr<Mixed> m_mixed;
116#endif
117 amigo operador de bool ==(const misto&, const misto&);
118 amigo operador de bool !=(const misto&, const misto&);
119 amigo operador de bool >(const misto&, const misto&);
120 amigo operador de bool <(const misto&, const misto&);
121 amigo operador bool >=(const misto&, const misto&);
122 amigo operador de bool <=(const misto&, const misto&);
123 };
124
125 operador de bool ==(const misto&, const misto&);
126 operador de bool !=(const misto&, const misto&);
127 operador de bool >(const misto&, const misto&);
128 operador de bool <(const misto&, const misto&);
129 operador bool >=(const misto&, const misto&);
130 operador de bool <=(const misto&, const misto&);
131}
132
133
134#endif //CPPrealm_BRIDGE_MIXED_HPP
Definição: binary.hpp:30
Definição: decimal128.hpp:30
Definição: misto.hpp:69
Definição: obj_key.hpp:33
Definição: object_id.hpp:31
Definição: timestamp.hpp:30
Definição: uuid.hpp:32