Realm C++ SDK 버전 v2.2.0

object.hpp

1
2//
3//저작권 2024 Realm Inc.
4//
5// Apache 라이선스, 버전 2.0("라이선스")에 따라 라이선스가 부여됩니다.
6// 라이선스를 준수하는 경우를 제외하고는 이 파일을 사용할 수 없습니다.
7// 다음에서 라이선스 사본을 얻을 수 있습니다.
8//
9// http://www.apache.org/licences/LICENSE-2.0
10//
11// 관련 법률에서 요구하거나 문서로 동의하지 않는 한, 소프트웨어
12// 라이선스에 따라 배포되는 것은 '있는 그대로' 배포됩니다,
13// Express 묵시적이든 어떤 종류의 보증이나 조건도 제공하지 않습니다.
14// 권한을 관리하는 특정 언어에 대한 내용은 라이선스를 참조하세요.
15// 라이선스에 따른 제한 사항.
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 <cpprealm/internal/bridge/utils.hpp>
28
29네임스페이스 영역 {
30 클래스 객체;
31 클래스 IndexSet;
32 클래스 CollectionChangeCallback;
33 구조체 CollectionChangeSet;
34 structNotificationToken ;
35}
36namespace realm::internal::bridge {
37 구조체 영역;
38 구조체 객체
39 struct obj_link;
40 struct object_schema;
41 구조체 목록;
42 struct col_key;
43 구조체 딕셔너리;
44
45 구조체 alert_token {
47 알림 _토큰(const 알림 _토큰 &기타) = 삭제;
48 알림 _토큰 & 연산자=(const 알림 _토큰 &기타) = 삭제;
49 알림 _토큰(notification_token &&other);
50 notification_token &operator=(notification_token &&other);
51 notification_token(NotificationToken&&);
53 연산자 알림 토큰() const;
54 void unregister();
55 private:
56#ifdef CPPRALM_HAVE_GENERATED_BRIDGE_TYPES
57 storage::NotificationToken m_token[1];
58#else
59 std::shared_ptr<NotificationToken> m_token;
60#endif
61 };
62
63 구조체 index_set {
64 index_set(); //NOLINT(google-explicit-constructor)
65 index_set(const index_set& other) ;
66 index_set& operator=(const index_set& other);
67 index_set(index_set&& other);
68 index_set& 연산자=(index_set&& other);
69 ~index_set();
70 index_set(const IndexSet&); //NOLINT(google-explicit-constructor)
71 [[nodiscard]] bool empty() const;
72 구조체 index_iterable_adaptor;
73 // 범위가 아닌 설정하다 의 개별 인덱스에 대한 반복자
74 클래스 index_iterator {
75 public:
76 index_iterator() = 기본값;
77 index_iterator(const index_iterator& other) ;
78 index_iterator& 연산자=(const index_iterator& other);
80 index_iterator& 연산자=(index_iterator&& other);
82 size_t 연산자*() const noException;
83 bool 연산자==(index_iterator const& it) const noException;
84 bool 연산자!=(index_iterator const& it) const noException;
85
86 index_iterator& operator++() noException;
87
88 index_iterator 연산자++(int) noException;
89
90 private:
91 친구 구조체 index_iterable_adaptor;
92#ifdef CPPRALM_HAVE_GENERATED_BRIDGE_TYPES
93 저장::IndexSet_IndexIterator m_iterator[1];
94#else
95 std::shared_ptr<std::any> m_iterator;
96#endif
97 };
98
100 index_iterable_adaptor() = 기본값;
102 index_iterable_adaptor& 연산자=(const index_iterable_adaptor& other);
107
108 const_iterator begin() const noException;
109 const_iterator end() const noException;
110 private:
111 친구 구조체 index_set;
112#ifdef CPPRALM_HAVE_GENERATED_BRIDGE_TYPES
113 저장::IndexSet_IndexIterableAdaptor 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 private:
120#ifdef CPPRALM_HAVE_GENERATED_BRIDGE_TYPES
121 storage::IndexSet m_idx_set[1];
122#else
123 std::shared_ptr<IndexSet> m_idx_set;
124#endif
125 };
127 collection_change_set(); //NOLINT(google-explicit-constructor)
129 collection_change_set& 연산자=(const collection_change_set& other);
131 collection_change_set& 연산자=(collection_change_set&& other);
133 collection_change_set(const CollectionChangeSet&);
134 연산자 CollectionChangeSet() const;
135 [[nodiscard]] index_set 삭제() const;
136 [[nodiscard]] index_set modifications() const;
137 [[nodiscard]] index_set inserts () const;
138 [[nodiscard]] std::unordered_map<int64_t, index_set>Columns() const;
139 [[nodiscard]] bool empty() const;
140 [[nodiscard]] bool collection_root_was_deleted() const;
141 private:
142#ifdef CPPRALM_HAVE_GENERATED_BRIDGE_TYPES
143 storage::CollectionChangeSet m_change_set[1];
144#else
145 std::shared_ptr<CollectionChangeSet> m_change_set;
146#endif
147 };
150 가상 before (collection_change_set const& c) = 0;
151 가상 oid after(collection_change_set const& c) = 0;
152 };
153
154 구조체 객체 {
155 객체(); //NOLINT(google-explicit-constructor)
156 객체(const 객체& other) ;
157 object& operator=(const object& other);
158 객체(객체&& 기타);
159 객체& 연산자=(객체&& 기타);
160 ~ 객체();
161 객체(const Object&); //NOLINT(google-explicit-constructor)
162 객체(const realm &realm, const obj &obj); //NOLINT(google-explicit-constructor)
163 object(const realm &realm, const obj_link& link);
164
165 연산자 Object() const; //NOLINT(google-explicit-constructor)
166
167 [[nodiscard]] obj get_obj() const;
168
169 [[nodiscard]] 영역 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]] object_schema get_object_schema() const;
176
177 [[nodiscard]] list get_list(const col_key&) const;
178 [[nodiscard]] 딕셔너리 get_dictionary(const col_key&) const;
179 private:
180#ifdef CPPRALM_HAVE_GENERATED_BRIDGE_TYPES
181 저장::Object m_object[1];
182#else
183 std::shared_ptr<Object> m_object;
184#endif
185 };
186}
187
188#endif //CPPREALM_BRIDGE_OBJECT_HPP
정의: col_key.hpp:28
정의: dictionary.hpp:138
정의: object_schema.hpp:33
정의: object.hpp:154
정의: realm.hpp:67