Realm C++ SDK 버전 v2.2.0

list.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_LIST_HPP
20#define CPPRALM_BRIDGE_LIST_HPP
21
22#include <cstdlib>
23#include <string>
24#include <memory>
25#include <optional>
26#include <cpprealm/internal/bridge/utils.hpp>
27
28네임스페이스 영역 {
29 클래스 목록;
30}
31
32namespace realm::internal::bridge {
33 구조체 영역;
34 구조체 객체
35 struct obj_key;
36 구조체 혼합;
37 구조체 바이너리
38 구조체 uuid;
39 구조체 object_id;
40 구조체 십진수128;
41 struct col_key;
42 구조체 타임스탬프
43 구조체 테이블;
44 structnotification_token ;
45 struct collection_change_callback;
46 구조체 결과
47 구조체 sort_descriptor;
48
49 구조체 목록 {
50 list();
51 list(const list& other) ;
52 list& 연산자=(const list& other) ;
53 list(list&& other);
54 list& operator=(list&& other);
55 ~list();
56 list(const List&); //NOLINT(google-explicit-constructor)
57 연산자 List() const; //NOLINT(google-explicit-constructor)
58 list(const 영역& 영역, const obj& obj, const col_key&);
59
60 [[nodiscard]] size_t size() const;
61 무효 제거(size_t idx);
62 remove_all()을 무효화 합니다.
63
64 테이블 get_table() const;
65
66 무효 add(const std::string&);
67 무효 add(const int64_t &);
68 무효 add(const double &);
69 무효 add(const bool &);
70 무효 add(const 바이너리 &);
71 무효 add(const uuid &);
72 무효 add(const object_id &);
73 무효 add(const decimal128 &);
74 무효 add(const 혼합 &);
75 무효 add(const obj_key &);
76 oid add(const timestamp &);
77 obj add_embedded();
78
79 void 설정하다(size_t pos, const int64_t &);
80 void set(size_t pos, const double &);
81 void 설정하다(size_t pos, const bool &);
82 void set(size_t pos, const std::string &);
83 void 설정하다(size_t pos, const uuid &);
84 void 설정하다(size_t pos, const object_id &);
85 void 설정하다(size_t pos, const decimal128 &);
86 void set(size_t pos, const 혼합 &);
87 void 설정하다(size_t pos, const 타임스탬프 &);
88 void 설정하다(size_t pos, const 바이너리 &);
89
90 size_t find(const int64_t &);
91 size_t find(const bool &);
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 혼합 &);
98 size_t find(const 타임스탬프 &);
99 size_t find(const 바이너리&);
100 size_t find(const obj_key&);
101
102 결과 sort(const std::vector<sort_descriptor>&);
103 [[nodiscard]] 결과 as_results() const;
104
105 notification_token add_notification_callback(std::shared_ptr<collection_change_callback>);
106 private:
107 템플릿 <typename ValueType>
108 친구 ValueType get(const list&, size_t idx);
109 친구 인라인 List* get_list(list& lst);
110 친구 인라인 const List* get_list(const list& lst);
111 inline :: 영역::List* get_list();
112 inline const :: 영역::List* get_list() const;
113#ifdef CPPRALM_HAVE_GENERATED_BRIDGE_TYPES
114 storage::List m_list[1];
115#else
116 std::shared_ptr<::realm::List> m_list;
117#endif
118 };
119
120 템플릿 <typename ValueType>
121 [[nodiscard]] ValueType get(const list&, size_t idx);
122 템플릿 <>
123 [[nodiscard]] std::string get(const list&, size_t idx);
124 템플릿 <>
125 [[nodiscard]] int64_t get(const list&, size_t idx);
126 템플릿 <>
127 [[nodiscard]] double get(const list&, size_t idx);
128 템플릿 <>
129 [[nodiscard]] 바이너리 get(const list&, size_t idx);
130 템플릿 <>
131 [[nodiscard]] uuid get(const list&, size_t idx);
132 템플릿 <>
133 [[nodiscard]] object_id get(const list&, size_t idx);
134 템플릿 <>
135 [[nodiscard]] decimal128 get(const list&, size_t idx);
136 템플릿 <>
137 [[nodiscard]] mixed get(const list&, size_t idx);
138 템플릿 <>
139 [[nodiscard]] obj get(const list&, size_t idx);
140
141 템플릿 <>
142 [[nodiscard]] std::optional<int64_t> get(const list& lst, size_t idx);
143 템플릿 <>
144 [[nodiscard]] std::optional<double> get(const list& lst, size_t idx);
145 템플릿 <>
146 [[nodiscard]] std::optional<bool> get(const list& lst, size_t idx);
147 템플릿 <>
148 [[nodiscard]] std::optional<uuid> get(const list& lst, size_t idx);
149 템플릿 <>
150 [[nodiscard]] std::optional<object_id> get(const list& lst, size_t idx);
151 템플릿 <>
152 [[nodiscard]] std::optional<std::string> get(const list& lst, size_t idx);
153 템플릿 <>
154 [[nodiscard]] std::optional<binary> get(const list& lst, size_t idx);
155 템플릿 <>
156 [[nodiscard]] std::optional<timestamp> get(const list& lst, size_t idx);
157}
158
159#endif //CPPREALM_BRIDGE_LIST_HPP
정의: 바이너리.hpp:30
정의: col_key.hpp:28
정의: 십진수128.hpp:30
정의: obj_key.hpp:33
정의: object_id.hpp:31
정의: realm.hpp:67
정의: Results.hpp:46
정의: timestamp.hpp:30