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

object.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_OBJECT_HPP
20#define CPPREALM_BRIDGE_OBJECT_HPP
21
22#include <any>
23#include <functional>
24#include <memory>
25#include <unordered_map>
26
27#include <cprealm/internal/bridge/utils.hpp>
28
29namespace Realm {
30 objeto de classe ;
31 class IndexSet;
32 class CollectionChangeCallback;
33 struct CollectionChangeSet;
34 estrutura NotificationToken;
35}
36namespace realm::internal::bridge {
37 domínio estruturado ;
38 estrutura obj;
39 estrutura obj_link;
40 estrutura object_schema;
41 lista de estruturas ;
42 estrutura chave_col;
43 dicionário estruturado ;
44
45 estrutura, estrutura notification_token {
47 notification_token(const notification_token &outros) = excluir;
48 notification_token &operator=(const notification_token & outros) = excluir;
50 notificação_token &operator=(notificação_token &&outros);
51 notification_token(NotificationToken&&);
53 operador NotificationToken() const;
54 anular o registro();
55 privado:
56#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
57 storage::NotificationToken m_token[1];
58#else
59 std::shared_ptr<NotificationToken> m_token;
60#endif
61 };
62
63 estrutura, estrutura index_set {
64 index_set(); //NOLINT(google-explicit-constructor)
66 index_set& operator=(index_setconst & outros);
67 index_set(index_set&& outro);
68 index_set& operador=(index_set&& outro);
69 ~index_set();
70 index_set(const IndexSet&); //NOLINT(google-explicit-constructor)
71 [[nodiscard]] bool empty() const;
72 estrutura, estrutura index_iterable_adaptor;
73 // Um iterador sobre os índices individuais no conjunto em vez dos intervalos
74 classe index_itizer {
75 público:
76 index_itizer() = default;
77 index_itizer(const index_itizere outro) ;
78 index_itizer& operator=(const index_itizer& other);
80 index_itizer& operador=(index_itizer&& outro);
82 operador size_t *() const noexceto;
83 bool operator==(index_itizer const& it) const noexceto;
84 operador de bool !=(index_iterator const& it) const noexceto;
85
86 index_itizer& operator++() noexceto;
87
88 index_itizer operador++(int) noexceto;
89
90 privado:
91 amigo estrutura, estrutura index_iterable_adaptor;
92#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
93 armazenamento::IndexSet_IndexIterator m_iterator[1];
94#else
95 std::shared_ptr<std::any> m_iterator;
96#endif
97 };
98
99 estrutura, estrutura index_iterable_adaptor {
100 index_iterable_adaptor() = default;
102 index_iterable_adaptor& operator=(const index_iterable_adaptor& other);
106 Usando const_itizer = index_itizer;
107
108 const_iterator begin() const noexceto;
109 const_itizer end() const noexceto;
110 privado:
111 amigo estrutura, estrutura index_set;
112#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
113 armazenamento::IndexSet_IndexIteratableAdaptor m_index_iterable_adaptor[1];
114#else
115 std::shared_ptr<std::any> m_index_iterable_adaptor;
116#endif
117 };
118 index_iterable_adaptor as_indexes() const;
119 privado:
120#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
121 armazenamento::IndexSet m_idx_set[1];
122#else
123 std::shared_ptr<IndexSet> m_idx_set;
124#endif
125 };
126 estrutura, estrutura collection {
127 collection_change_set(); //NOLINT(google-explicit-constructor)
129 collection& operator=(const collection& other);
130 collection(collection&& outro);
131 collection& operator=(collection&& outro);
132 collection();
133 collection_change_set(const CollectionChangeSet&);
134 operador CollectionChangeSet() const;
135 [[nodiscard]] index_set deletetions () const;
136 [[nodiscard]] index_set modified () const;
137 [[nodiscard]] index_set inserts () const;
138 [[nodiscard]] std::unordered_map<int64_t, index_set> column() const;
139 [[nodiscard]] bool empty() const;
140 [[nodiscard]] bool collection() const;
141 privado:
142#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
143 armazenamento::CollectionChangeSet m_change_set[1];
144#else
145 std::shared_ptr<CollectionChangeSet> m_change_set;
146#endif
147 };
148 estrutura, estrutura collection_change_callback {
149 virtual ~collection_change_callback() {}
150 virtual vazio antes(collection const& c) = 0;
151 virtual null after(collection const& c) = 0;
152 };
153
154 estrutura, estrutura objeto {
155 objeto(); //NOLINT(google-explicit-constructor)
156 objeto( objeto constantee outro);
157 object& operator=(objeto const& other);
158 objeto(objeto&& outro);
159 objeto& operador=(objeto&& outro);
160 objeto();
161 objeto(const Objeto&); //NOLINT(google-explicit-constructor)
162 objeto(const realm &realm, const obj &obj); //NOLINT(google-explicit-constructor)
163 objeto(const realm &realm, const obj_link& link);
164
165 operador objeto() const; //NOLINT(google-explicit-constructor)
166
167 [[nodiscard]] obj get_obj() const;
168
169 [[nodiscard]] Realm get_realm() const;
170
171 [[nodiscard]] bool is_valid() const;
172
173 notification_token add_notification_callback(std::shared_ptr<collection_change_callback>&& cb);
174
175 [[nodiscard]] objeto get_object_schema() const;
176
177 [[nodiscard]] list get_list(const col_key&) const;
178 [[nodiscard]] dicionário get_Dictionary(const col_key&) const;
179 privado:
180#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
181 armazenamento::objeto objeto[1];
182#else
183 std::shared_ptr<Object> m_object;
184#endif
185 };
186}
187
188#endif //CPPrealm_BRIDGE_OBJECT_HPP
Definição: col_key.hpp:28
Definição: dictionary.hpp:138
Definição: object.hpp:63
Definição: list.hpp:49
Definição: obj.hpp:123
Definição: object_schema.hpp:33
Definição: object.hpp:154
Definição: realm.hpp:67