Realm C++ SDK版本 v 2.2.0

list.hpp

1
2//
3// 版权所有 2024 Realm Inc.
4//
5// 根据 Apache 许可证 2.0 版(“许可证”)获得许可;
6// 除非符合合规,否则不得使用此文件。
7// 您可以在以下网址获取许可证副本:
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// 除非适用法律要求或书面同意,否则软件
12// 根据许可证分发是按“原样”分发的,
13// 不提供任何类型的Express或暗示的保证或条件。
14// 请参阅管理权限的特定语言的许可证和
15// 许可证下的限制。
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 <cpprealm/internal/bridge/utils.hpp>
27
28命名空间域 {
29 class List;
30 }
31
32命名空间realm::internal::bridge {
33 struct Realm;
34 struct obj;
35 struct obj_key;
36 结构体混合;
37 struct binary;
38 struct uuid;
39 struct object_id;
40 struct十进制128 ;
41 struct col_key;
42 struct timestamp;
43 结构表;
44 struct notification_token;
45 struct collection_change_callback;
46 struct结果;
47 struct sort_descriptor;
48
49 struct 列表{
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 void 删除( size_t idx);
62 void remove_all();
63
64 get_table() const
65
66 void add( const std::string&);
67 void add( const int 64 _t &);
68 void add( const double &);
69 void add( const bool &);
70 void add( const binary &);
71 void add( const uuid &);
72 void add( const object_id &);
73 void add( const Decimal 128 &);
74 void add( const Mixed &);
75 void add( const obj_key &);
76 void add( const timestamp &);
77 obj add_embedded();
78
79 void 设立 ( size_t pos, const int 64 _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 Decimal 128 &);
86 void set ( size_t pos, const混合&);
87 void 设立 ( size_t pos, const timestamp &);
88 void 设立 ( size_t pos, const binary &);
89
90 size_t find( const int 64 _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 Decimal 128 &);
97 size_t find( const Mixed &);
98 size_t find( const timestamp &);
99 size_t find( const binary &);
100 size_t find( const obj_key &);
101
102 结果排序( 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 template < typename ValueType>
108 好友ValueType get( const list &, size_t idx);
109 朋友 inline 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 CPPREALM_HAVE_GENERATED_BRIDGE_TYPES
114 storage::List m_list[ 1 ];
115#else
116std::shared_ptr<::realm::List> m_list;
117#endif
118 };
119
120 template < typename ValueType>
121 [[nodiscard]] ValueType get( const list &, size_t idx);
122 template <>
123 [[nodiscard]] std::string get( const list &, size_t idx);
124 template <>
125 [[nodiscard]] int 64 _t get( const list &, size_t idx);
126 template <>
127 [[nodiscard]] double get( const list &, size_t idx);
128 template <>
129 [[nodiscard]] binary get( const list &, size_t idx);
130 template <>
131 [[nodiscard]] uuid get( const list &, size_t idx);
132 template <>
133 [[nodiscard]] object_id get( const list &, size_t idx);
134 template <>
135 [[nodiscard]] Decimal 128 get( const list &, size_t idx);
136 template <>
137 [[nodiscard]] Mixed get( const list &, size_t idx);
138 template <>
139 [[nodiscard]] obj get( const list &, size_t idx);
140
141 template <>
142 [[nodiscard]] std::Optional<int 64 _t> get( const list & lst, size_t idx);
143 template <>
144 [[nodiscard]] std::Optional<double> get( const list & lst, size_t idx);
145 template <>
146 [[nodiscard]] std::Optional<bool> get( const list & lst, size_t idx);
147 template <>
148 [[nodiscard]] std::Optional<uuid> get( const list & lst, size_t idx);
149 template <>
150 [[nodiscard]] std::Optional<object_id> get( const list & lst, size_t idx);
151 template <>
152 [[nodiscard]] std::Optional<std::string> get( const list & lst, size_t idx);
153 template <>
154 [[nodiscard]] std::Optional<binary> get( const list & lst, size_t idx);
155 template <>
156 [[nodiscard]] std::Optional<timestamp> get( const list & lst, size_t idx);
157 }
158
159#endif //CPREALM_BRIDGE_LIST_HPP
定义: binary.hpp: 30
定义: col_key.hpp: 28
定义:十进制128 .hpp: 30
定义: list.hpp: 49
定义: mixed.hpp:69
定义: obj_key.hpp: 33
定义: obj.hpp:123
定义: object_id.hpp:31
定义: realm.hpp: 67
定义: results.hpp:46
定义: set.hpp: 48
定义: table.hpp:40
定义: timestamp.hpp: 30
定义: uuid.hpp:32