Realm C++ SDKバージョン v 2.2.0

query.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// 該当するルールによって要求されたり、書込み (write) で同意された場合を除き、ソフトウェア
12ライセンスに基づいて配布される // は "AS IS" CRUD で配布されるため、
13// 任意の種類の 保証 または 条件なし(式またはExpressのいずれか)。
14// 特定の言語を使用する権限については、「ライセンス」を参照してください
15ライセンスに基づく // の制限。
16//
18
19#ifndref CPREALM_TRIDGE_QUERY_HPP
20CPREALM_CRIDGE_QUERY_HPP を定義する
21
22#include <cpprealm/ internal/bridge/col_key.hpp>
23#include <cpprealm/ internal/bridge/obj.hpp>
24#include <cpprealm/ internal/bridge/uts.hpp>
25
26#include <optional>
27#include <string_view>
28
29名前空間邦土 {
30 struct object_id。
31 構造体小数128 、
32 struct uuid
33 リンクチェーンのクラス
34 クラスのクエリ
35 クラスSubexpr。
36 }
37名前空間Realm:: internal::bridge {
38 構造体テーブル
39 struct col_key。
40 構造体タイムスタンプ。
41 構造体バイナリ。
42 struct object_id。
43 構造体小数128 、
44 struct uuid
45 混合構造体
46
47 構造体 subexpr {
48 Subexprsubexpr &その他)=デフォルト
49 サブエクスプレッションと 演算子=(サブエクスプレッションとその他) =デフォルト
50 ~subexpr() = default;
51 subexpr (std::unique_ptr[Subexpr]その他)<Subexpr>
52
53 クエリが等価( const std::optional{int 64 _t>+rhs} const }
54 クエリではない_等価( const std::optional<int 64 _t>+rhs) const
55 クエリが大きい場合( const std::optional<int 64 _t>+rhs) const
56 クエリレスconst std::optional<int 64 _t>+rhs) const
57 クエリより大きい_等価( const std::optional<int 64 _t>+rhs) const
58 クエリ未満_等価( const std::optional<int 64 _t>=rhs) const
59
60 クエリ は( std::optional<bool> +bool>+rhs)const
61 クエリ ではない_等価( const std::optional=bool>=rhs)<bool> const .
62
63 クエリ が等価(std::optional<double> {double]+rhs)const
64 クエリ not_equal( const std::optional[double]+rhs)<double> const
65 クエリ が大きい場合( const std::optional"double">+rhs)<double> const
66 。<double>
67 クエリ より大きい_等価( const std::optional_double_rhs)<double> const
68 クエリ less_equal( const std::optional[double]+rhs)<double> const
69
70 クエリ と等価( const std::optional[binary]>=rhs)<binary> const
71 クエリ ではない_等価( const std::optional[binary]>=rhs)<binary> const
72
73 クエリ は( std ::optional[timestamp]+<timestamp> rhs ) 条件に等価であるため、
74 クエリ ではない_等価( const std::optional[timestamp]+rhs)<timestamp> const
75 クエリ が大きい場合( const std::optional=timestamp<timestamp> ===========================================================
76 。<timestamp>
77 クエリ より大きい_等価( const std::optional=timestamp ==========================================================================<timestamp>
78 クエリ less_equal( <timestamp>const std::optional=timestamp ============================================================================
79
80 クエリ が等価( const <std::string>std::optional=std::string>=rhs) 条件 :
81 クエリではない_等価( const std::optional<std::string>=rhs) const
82 クエリ には が含まれ ます ( const std:: optional =std:string><std::string> ======================================================================================================
83
84 クエリ の等価( const std::optional<internal::bridge::uuid> は、 const を実行するためのクエリを実行します。
85 クエリではない_等価( const std::optional<internal::bridge::uuid>=rhs) const .
86
87 クエリと等価( const std::optional<internal::bridge::object_id>(rhs)) const
88 クエリ ではない_等価( const std::optional<internal::bridge::object_id> +rhs) const
89
90 クエリが等価( const std::optional< internal::bridge::decimal 128 >=rhs) const
91 クエリではない_等価( const std::optional< internal::bridge::decimal 128 >=rhs) const
92 クエリが大きい場合( const std::optional未満: 内部::bridge::decimal 128 >=rhs) const
93 クエリレスconst std::optional未満: 内部::bridge::decimal 128 >=rhs) const
94 クエリより大きい_等価( const std::optional< internal::bridge::decimal 128 >=rhs) const
95 クエリ未満_等価( const std::optional< internal::bridge::decimal 128 >=rhs) const
96
97 クエリ 混合_等価( 内部: : フィールド::混合型 と rhs ) 結合
98 クエリ混合_not_equal( const internal::bridge::混合型とrhs) const .
99
100 クエリ は( std:optional を構成 : オプション(std):optional+)<obj> const を 使用し ます。
101 クエリ not_equal( <obj>const std::optional=obj> =====================================================================================
102
103 private :
104std::shared_ptr[Subexpr><Subexpr> m_subexpr]
105 };
106
107 構造体 link_shell {
108 link_shell ()
109 link_linkconst link_linkおよびその他) :
110 link_linkおよび 演算子=( const link_linkおよびその他) }
111 link_linklink_link_その他)
112 link_link & 演算子=( link_link_and+その他)。
113 ~link_chain() = default;
114 link_linkconst LinkChuin & その他)
115
116 link_shell & link( coll_key )。
117 link_link_link (std::string co_name)
118 link_link_backlink ( constテーブルとオリジン、 col_key 、origin_col_key)。
119
120 テンプレート< typename >
121 Subexpr列( coll_key
122 subexpr collat 指定( coll_key )]
123
124 Subexprサブクエリ(クエリサブクエリ)
125 テーブルget_table()
126
127 private :
128std::shared_ptr[LinkChuin]><LinkChain> m_link_channel
129 };
130
131 構造体 クエリ{
132 クエリ()
133 クエリ という 条件とその他のクエリ ) :
134 クエリと演算子=( constクエリとその他) :
135 クエリクエリとその他)
136 クエリと演算子=(クエリとその他):
137 ~クエリ()。
138 クエリ consttable とtable ) 。 //NOLINT(google-explit-structor)
139 テーブルget_table()
140 クエリと_query( constクエリと)。
141 クエリと否定()。
142
143 クエリconst Query &) //NOLINT(google-explit-structor)
144 演算子Query() const//NOLINT(google-explit-structor)
145
146 // 条件: null
147 クエリと等しい( coll_key列_キー, std::nullopt_t)#
148 クエリとnot_等価( col_key列_キー, std::nullopt_t)
149
150 クエリと等しい( col_key列_キー, int 64 _t 値)。
151 クエリと非_等価( col_key列_キー, int 64 _t 値)
152 クエリ以上( coll_key列_キー, int 64 _t 値)。
153 クエリと大きい_等価( col_key列_キー, int 64 _t 値)。
154 クエリ&less( coll_key列_キー, int 64 _t 値)
155 クエリと 以下の_等価( col_key列_キー, int 64 _t 値)
156 クエリと 間( coll_key列_キー、int 64 _t から、int 64 _t へ)。
157
158 //条件: double
159 クエリと equal( col_key列_キー、 double値)。
160 クエリとnot_等価( col_key列_キー、 double値)。
161 クエリ以上( coll_key列_キー、 double値)。
162 クエリと大きい_等価( coll_key列_キー、 double値)。
163 クエリ&less( coll_key列_キー, double値)
164 クエリ&less_equal( col_key列_キー、 double値)。
165 クエリと間( col_key列_キー、 double from、 double to):
166
167 // 条件: タイムスタンプ
168 クエリと等しい( coll_key列_キー、タイムスタンプ値)。
169 クエリとnot_等価( col_key列_キー、タイムスタンプ値)。
170 クエリ以上( coll_key列_キー、タイムスタンプ値)。
171 クエリと大きい_等価( coll_key列_キー、タイムスタンプ値)。
172 クエリと以下の値( col_key列_キー、タイムスタンプ値)。
173 クエリ&less( coll_key列_キー,タイムスタンプ値):
174
175 // 条件: UUID
176 クエリと等しい( coll_key列_キー、 UUID値)。
177 クエリと not_等価( col_key列_キー, UUID値)。
178 クエリ以上( coll_key列_キー, UUID値)
179 クエリと大きい_等価( coll_key列_キー、 UUID値)。
180 クエリと以下の値( col_key列_キー, UUID値)
181 クエリ&less( coll_key列_キー, UUID値)
182
183 // 条件: ObjectId
184 クエリと等しい( coll_key列_キー, オブジェクト_id値)。
185 クエリ と not_ 等価( col_key 列_キー, オブジェクト_id 値)。
186 クエリ以上( coll_key列_キー, オブジェクト_id値)。
187 クエリと大きい_等価( col_key列_キー, オブジェクト_id値)。
188 クエリと未満_等価( col_key列_キー, オブジェクト_id値)。
189 クエリ&less( coll_key列_キー, オブジェクト_id値)
190
191 // 条件: 小数点128
192 クエリと等しい( col_key列_キー、 10 進数128値)。
193 クエリとnot_等価( col_key列_キー、 10進数128値)。
194 クエリ以上( coll_key列_キー、 10進数128値)。
195 クエリ と大 の128 クエリ
196 クエリと未満_等価( col_key列_キー、 10 進数128値)。
197 クエリ& 以下( coll_key列_キー、 10 進数128値)。
198
199 // 条件: string
200 クエリと等価( coll_key列_キー、std::string_view 値、 bool大文字と小文字を区別する = true )。
201 クエリと not_equal( coll_key列_キー、std::string_view 値、ブール値大文字と小文字を区別する= true )。
202 クエリと start_with( coll_key列_キー、 const std::string= 値、 bool大文字と小文字を区別する = true )。
203 クエリと end_with( coll_key列_キー、 const std::string= 値、 bool大文字と小文字を区別する = true )。
204 クエリと を含む( coll_key列_キー、std::string_view 値、 bool大文字と小文字を区別する = true )。
205 クエリと同様( coll_key列_キー、 const std::string+ 値、 bool case_Authentication = true )。
206
207 // 条件: バイナリ
208 クエリと等しい( coll_key列_キー、バイナリ値、ブール値大文字と小文字を区別する = true )。
209 クエリと not_等価( coll_key列_キー、バイナリ値、ブール値大文字と小文字を区別する= true )。
210 クエリと開始_使用( coll_キー 列_キー、バイナリ値、ブール値大文字と小文字を区別する= true )。
211 クエリと end_with( coll_key列_キー、バイナリ値、ブール値大文字と小文字を区別する = true )。
212 クエリと を含む( coll_key列_キー、バイナリ値、ブール値大文字と小文字を区別する = true )。
213 クエリと同様( coll_key列_キー、バイナリB、ブール値大文字と小文字を区別する = true )。
214
215 // 条件: 混合
216 クエリと等価( coll_key列_キー、混合値、 bool大文字と小文字を区別する = true )。
217 クエリとnot_等価( coll_key列_キー、混合値、ブール値大文字と小文字を区別する = true )。
218 クエリ以上( coll_key列_キー、混合値)。
219 クエリと大きい_等価( coll_key列_キー、混合値)。
220 クエリ&less( coll_key列_キー,混合値):
221 クエリ& 以下_等価( coll_key列_キー、混合値):
222 クエリと開始_使用( coll_キー 列_キー、混合値、ブール値大文字と小文字を区別する = true )。
223 クエリと end_with( coll_key列_キー、混合値、ブール値大文字と小文字を区別する = true )。
224 クエリと を含む( coll_key列_キー、混合値、ブール値大文字と小文字を区別する = true )。
225 クエリと同様( coll_key列_キー、混合値、ブール値大文字と小文字を区別する = true )。
226
227 // 条件: ブール値
228 クエリと等しい( coll_key列_キー、ブール値)。
229 クエリとnot_等価( col_key列_キー、ブール値)。
230
231 // 条件: リンク
232 クエリとlinks_to( coll_key列_キー、 const internal::bridge::obj & O)。
233 クエリと not_links_to( coll_key列_キー、 const internal::bridge::obj & O):
234
235 クエリ と辞書_has_value_for_key_equals( col_key string_key、c onst std::string+ キー、const 混合 と 値)。
236 クエリと辞書_has_value_for_key_not_等価( col_key列_キー、 const std::string+ キー、 const混合値と 値)。
237 クエリと辞書_has_value_for_key_greater_than( col_key列_キー、 const std::string+ キー、 const混合値と 値)。
238 クエリと辞書_has_value_for_key_less_than( col_key列_キー、 const std::string+ キー、 const混合と値)。
239 クエリ と辞書_値 _for_key_greater_than_equals ( col_key 列_キー、 std ::string+ キー、 混合 値)。
240 クエリ と辞書_has_value_for_key_less_than_equals( col_key string_key、c onst std::string+ キー、const 混合 値 と 値)。
241 クエリと辞書_contains_string_for_key( col_key列_キー、 const std::string+ キー、 const std::string+ 値)。
242 クエリ と辞書 _contains_key ( col_key 列_キー、Const std::string+ キー)。
243 database_link_subexpr ( coll_key列_キー、 coll_key link_collun_key、c onst std::string+ キー)。
244
245 // 式
246 静的 クエリfalse-述語()。
247
248 std::string() const
249 private :
250 インラインクエリ* get_query()。
251#ifdef CPREALM_HAV_GENERTED_BRIDGE_TypeS
252 storage::Query m_query[ 1 ]
253#else
254std::shared_ptr[Query]><Query> m_query
255#endif
256
257 };
258
259 クエリ演算子 || ( constクエリと Lhs、 constクエリと Rhs)。
260 }
261
262#endif //CPREALM_TRIDGE_QUERY_HPP
定義: binary.happ: 30
定義: coll_key.happ: 28
定義: 10進数128 .happ: 30
定義: compound.hpp:69
Definition: obj.hpp:123
定義: object_id.hpp:31
定義: query.happ: 131
定義: query.happ: 47
Definition: table.hpp:40
定義: timestamp.happ: 30