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

list.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_LIST_HPP
20#define CPPREALM_BRIDGE_LIST_HPP
21
22#include <cstdlib>
23#include <string>
24#include <memory>
25#include <optional>
26#include <cprealm/internal/bridge/utils.hpp>
27
28namespace Realm {
29 Lista de classe ;
30}
31
32namespace realm::internal::bridge {
33 domínio estruturado ;
34 estrutura obj;
35 estruturado obj_key;
36 estrutura mista;
37 binário estruturado ;
38 struct uuid;
39 estrutura object_id;
40 estrutura decimal128;
41 struct col_key;
42 carimbo de data/hora da estrutura ;
43 tabela estrutura ;
44 change notification_token;
45 collection_change_callback de estrutura ;
46 estrutura de resultados;
47 struct sort_descriptor;
48
49 estrutura, estrutura lista {
50 lista();
51 lista(listaconst e outro );
52 lista& operador=(listaconst & outro) ;
53 lista(lista&& outro);
54 lista& operador=(lista&& outro);
55 ~lista();
56 lista(const List&); //NOLINT(google-explicit-constructor)
57 operador List() const; //NOLINT(google-explicit-constructor)
58 lista(const Realm& Realm, const obj& obj, const col_key&);
59
60 [[nodiscard]] size_t size() const;
61 removedor nulo (size_t idx);
62 null remove_all ();
63
64 tabela get_table() const;
65
66 add(const std ::string&);
67 add(const int64_t &);
68 add(const double & );
69 add( bool const & );
70 add(const binário & );
71 add (const uuid &);
72 add(const object_id & );
73 add(const decimal128 &);
74 add(const mixed &) ;
75 add (const obj_key &);
76 add ( carimbo de data/ hora const &);
77 obj add_embedded();
78
79 vazio set(size_t pos, const int64_t &);
80 vazio set(size_t pos, const double &);
81 vazio set(size_t pos, const bool &);
82 vazio set(size_t pos, const std::string &);
83 vazio set(size_t pos, const uuid &);
84 vazio set(size_t pos, const object_id &);
85 vazio set(size_t pos, const decimal128 &);
86 vazio set(size_t pos, const mixed &);
87 vazio set(size_t pos, const timestamp &);
88 vazio set(size_t pos, const binário & );
89
90 size_t find(const int64_t &);
91 size_t find(bool const &);
92 size_t find(const double &);
93 size_t find(const std::string &);
94 size_t find(const uuid &);
95 size_t find(const object_id &);
96 size_t find(const decimal128 &);
97 size_t find(const mixed &);
98 size_t find(const timestamp &);
99 size_t find( binário constante& );
100 size_t find(const obj_key&);
101
102 classificação de resultados (const std::vector<sort_descriptor>&);
103 [[nodiscard]] resulta as_results() const;
104
105 notification_token add_notification_callback(std::shared_ptr<collection_change_callback>);
106 privado:
107 modelo <typename ValueType>
108 valueType get(listaconst &, size_t idx);
109 amigo Lista embutida * get_list(lista& lst);
110 amigo in-line listaconst * get_list( listaconst & lst);
111 inline :: Realm::List* get_list();
112 inline const :: Realm::List* get_list() const;
113#ifdef CPPREALM_HVE_GENERATED_BRIDGE_TYPes
114 storage::List m_list[1];
115#else
116 std::shared_ptr<::realm::List> m_list;
117#endif
118 };
119
120 modelo <typename ValueType>
121 [[nodiscard]] ValueType get(listaconst &, size_t idx);
122 modelo <>
123 [[nodiscard]] std::string get(const list&, size_t idx);
124 modelo <>
125 [[nodiscard]] int64_t get(listaconst &, size_t idx);
126 modelo <>
127 [[nodiscard]] double get(listaconst &, size_t idx);
128 modelo <>
129 [[nodiscard]] binary get(const list&, size_t idx);
130 modelo <>
131 [[nodiscard]] uuid get(const list&, size_t idx);
132 modelo <>
133 [[nodiscard]] object_id get(const list&, size_t idx);
134 modelo <>
135 [[nodiscard]] decimal128 get(listaconst &, size_t idx);
136 modelo <>
137 [[nodiscard]] mixed get(const list&, size_t idx);
138 modelo <>
139 [[nodiscard]] obj get(const list&, size_t idx);
140
141 modelo <>
142 [[nodiscard]] std::optional <int64_t> get(const list& lst, size_t idx);
143 modelo <>
144 [[nodiscard]] std::optional<double> get(const list& lst, size_t idx);
145 modelo <>
146 [[nodiscard]] std::optional<bool> get(const list& lst, size_t idx);
147 modelo <>
148 [[nodiscard]] std::optional<uuid> get(const list& lst, size_t idx);
149 modelo <>
150 [[nodiscard]] std::optional<object_id> get(const list& lst, size_t idx);
151 modelo <>
152 [[nodiscard]] std::optional<std::string> get(const list& lst, size_t idx);
153 modelo <>
154 [[nodiscard]] std::optional<binary> get(const list& lst, size_t idx);
155 modelo <>
156 [[nodiscard]] std::optional<timestamp> get(const list& lst, size_t idx);
157}
158
159#endif //CPPrealm_BRIDGE_LIST_HPP
Definição: binary.hpp:30
Definição: col_key.hpp:28
Definição: decimal128.hpp:30
Definição: list.hpp:49
Definição: misto.hpp:69
Definição: obj_key.hpp:33
Definição: obj.hpp:123
Definição: object_id.hpp:31
Definição: realm.hpp:67
Definição: results.hpp:46
Definição: set.hpp:48
Definição: table.hpp:40
Definição: timestamp.hpp:30
Definição: uuid.hpp:32