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

managed_binary.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_BINARY_HPP
20#define CPPREALM_MANAGED_BINARY_HPP
21
22#include <cprealm/macros.hpp>
23#include <cprealm/types.hpp>
24
25namespace Realm {
26 classe rbool;
27}
28
29namespace Realm {
30
31 modelo<>
32 estrutura, estrutura managed<std::vector<uint8_t>> : managed_base {
33 Usando gerenciado<std::vector<uint8_t>>::managed_base::operator=;
34
35 [[nodiscard]] std::vector<uint8_t> detach() const;
36 [[nodiscard]] operador std::vector<uint8_t>() const;
37
38 std::vector<uint8_t> operator*() const;
39 void push_back(uint8_t v);
40 uint8_t operator[](uint8_t idx) const;
41 size_t size() const;
42
43 //Marca: - operadores de comparação
44 rbool operator==(const std::vector<uint8_t>& rhs) const noexceto;
45 operador de rbool !=(const std::vector<uint8_t>& rhs) const noexceto;
46
47 privado:
48 managed() = default;
49 managed(const managed&) = delete;
50 managed(managed &&) = delete;
51 managed& operator=(const managed&) = delete;
52 managed& operator=(managed&&) = delete;
53 modelo<typename, typename>
54 amigo estrutura, estrutura managed;
55 };
56
57 modelo<>
58 estrutura, estrutura managed<std::optional <std::vector <uint8_t>>> : managed_base {
59 Usando gerenciado<std::opcional<std::vector<uint8_t>>>::managed_base::operator=;
60
61 [[nodiscard]] std::optional <std::vector <uint8_t>> detach() const;
62 [[nodiscard]] operador std::opcional <std::vector <uint8_t>>() const;
63
64 estrutura, estrutura caixa {
65 std::opcional <std::vetor <uint8_t>> operador*() const;
66 void push_back(uint8_t v);
67 uint8_t operator[](uint8_t idx) const;
68 size_t size() const;
69 privado:
70 caixa(managed& parent) : m_parent(parent) { }
71 std::reference_wrapper <managed <std::optional <std::vector <uint8_t>>>> m_parent;
72 amigo estrutura, estrutura gerenciado<std::opcional<std::vector<uint8_t>>>;
73 };
74
75 std::unique_ptr<box> operator->()
76 {
77 return std::make_unique<box>(box(*this));
78 }
79 [[nodiscard]] operador de caixa *() {
80 Método caixa(*esta);
81 }
82
83 //Marca: - operadores de comparação
84 rbool operator==(const std::opcional<std::vector<uint8_t>>& rhs) const noexceto;
85 operador de rbool !=(const std::opcional <std::vector <uint8_t>>& rhs) const noexceto;
86
87 privado:
88 managed() = default;
89 managed(const managed&) = delete;
90 managed(managed &&) = delete;
91 managed& operator=(const managed&) = delete;
92 managed& operator=(managed&&) = delete;
93 modelo<typename, typename>
94 amigo estrutura, estrutura managed;
95 };
96}
97
98
99#endif//CPPrealm_MANAGED_BINARY_HPP
Definição: rbool.hpp:36
Definição: managed_Dictionary.hpp:129
Definição: macros.hpp:286
Definição: obj.hpp:62