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

managed_objectid.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_MANAGED_OBJECTID_HPP
20#define CPPREALM_MANAGED_OBJECTID_HPP
21
22#include <cprealm/macros.hpp>
23#include <cprealm/types.hpp>
24
25#include <cpprealm/internal/bridge/object_id.hpp>
26
27namespace Realm {
28 classe rbool;
29}
30
31namespace Realm {
32 modelo<>
33 estrutura, estrutura managed< Realm::object_id> : managed_base {
34 Usando gerenciado<realm::object_id>::managed_base::operator=;
35 [[nodiscard]] realm::object_id detach() const {
36 return m_obj->template get<realm::internal::bridge::object_id>(m_key).operator :: Realm::object_id();
37 }
38
39 [[nodiscard]] realm::object_id operator *() const {
40 return desvincular();
41 }
42
43 [[nodiscard]] operador Realm::object_id() const {
44 return desvincular();
45 }
46
47 //Marca: - operadores de comparação
48 rbool operator==(const Objeto de Realm& rhs) const noexceto;
49 operador rbool !=(const Objeto de Realm& rhs) const noexceto;
50
51 privado:
52 managed() = default;
53 managed(const managed&) = delete;
54 managed(managed &&) = delete;
55 managed& operator=(const managed&) = delete;
56 managed& operator=(managed&&) = delete;
57 modelo<typename, typename>
58 amigo estrutura, estrutura managed;
59 };
60
61 modelo<>
62 estrutura, estrutura managed<std::optional<realm::object_id>> : managed_base {
63 Usando <std::opcional <<realm::object_id>Realm gerenciado ::object_id>>::managed_base::operator=;
64
65 [[nodiscard]] std::optional<realm::object_id> detach() const {
66 auto v = m_obj->template get_optional<realm::internal::bridge::object_id>(m_key);
67 se (v) {
68 return v.value().operator :: Realm::object_id();
69 } mais {
70 return std::nullopt;
71 }
72 }
73
74 [[nodiscard]] std::opcional<realm::object_id> operador *() const {
75 return desvincular();
76 }
77
78 [[nodiscard]] operator std::optional<realm::object_id>() const {
79 return desvincular();
80 }
81
82 //Marca: - operadores de comparação
83 rbool operator==(const std::opcional<realm::object_id>& rhs) const noexceto;
84 operador rbool !=(const std::optional<realm::object_id>& rhs) const noexceto;
85
86 privado:
87 managed() = default;
88 managed(const managed&) = delete;
89 managed(managed &&) = delete;
90 managed& operator=(const managed&) = delete;
91 managed& operator=(managed&&) = delete;
92 modelo<typename, typename>
93 amigo estrutura, estrutura managed;
94 };
95
96} // namespace realm
97
98#endif//CPPrealm_MANAGED_OBJECTID_HPP
Definição: rbool.hpp:36
Definição: macros.hpp:286
Definição: obj.hpp:62
Definição: tipos.hpp:56