19#ifndef CPPREALM_BRIDGE_OBJ_HPP
20CPREALM_CRIDGE_OBJ_HPP を定義する
24#include <function"><functional>
29#include <cpprealm/types.hpp>
30#include <cpprealm/ternal/bridge/binary.hpp>
31#include <cpprealm/ internal/bridge/col_key.hpp>
33#include <cpprealm/ internal/bridge/Dictionary.hpp>
34#include <cpprealm/ internal/bridge/object.hpp>
35#include <cpprealm/ internal/bridge/object_id.hpp>
36#include <cpprealm/ internal/bridge/table.hpp>
37#include <cpprealm/ internal/bridge/uts.hpp>
50 structnotificationToken
56 namespace internal::type_info {
57 テンプレート<
typename ,
typename >
61 テンプレート<
typename ,
typename >
63 テンプレート<
typename ,
typename >
67名前空間Realm:: internal::bridge {
88 struct is_optional : std::false_type {
93 struct is_optional=std::optional==================================================<T>
99 [[nodiscard]] T get(constobj &、
const coll_keyと、col_key)。
101 [[nodiscard]] std::string get(constobj+,
const coll_key+
col_key )#
103 [[nodiscard]] uuid get(constobj+,
const coll_key+
col_key )#
105[[ nodiscard ]] object_id get(
const 中に
107 [[nodiscard]] 10進数128 get(constobj &、
const coll_keyとcol_key)
109[[ nodiscard ]] バイナリ get(
const 中に
111 [[nodiscard]] タイムスタンプ get(constobj+,
const coll_key+
col_key )[]
113 [[nodiscard]] の int 64 _t get(constobj+,
const coll_key+
col_key )
115[[ nodiscard ]]
double get(
const 中に
117 [[nodiscard]]
bool get(constobj &、
const coll_keyと、col_key)/
119 [[nodiscard]] 混合 get(constobj &、
const coll_keyと、col_key)
121 [[nodiscard]]core_Dictionary get(constobj &、
const coll_keyとcol_key)
126 objと 演算子=(
constobjとその他) :
132 [[nodiscard]]
テーブルget_table () は 次の例外を
除きます 。
133 [[nodiscard]]
テーブルget_target_table(
coll_key ) connect
noopreを
除く
135[[ nodiscard ]]
ブール値 :
139 return internal::bridge::get = T ========================================================<T>
147 return internal::bridge::get = T ========================================================<T>
161 void 設定 (
const coll_key &
coll_key 、
const std::chrono::time_point[std::chrono::system_クロック>+<std::chrono::system_clock> 値])。
163std:: enable_if_t = std :: is_enum_v<T> = T
=========================================================================
167 void セット (
const coll_key & coll_key 、
const std::optional[T]+<T> 値) {
175 無効 なset_list_values(
const coll_key &
coll_key 、
const std::vector=obj_key>+<obj_key> 値)。
176 無効 なset_list_values(
const coll_key &
coll_key 、
Const std::vector[std::string]>+<std::string> 値)。
177 無効 なset_list_values(
const coll_key &
coll_key 、
Const std::vector[]<bool> 値)。
178 無効なset_list_values(
const coll_key &
coll_key 、
const std::vector<int 64 _t>+ 値)。
179 無効 なset_list_values(
const coll_key &
coll_key 、
const std::vector=double>=<double> 値)。
180 無効 なset_list_values(
const coll_key &
coll_key 、
const std::vector<internal::bridge::uuid> + 値)。
181 無効 なset_list_values(
const coll_key &
coll_key 、
const std::vector[Interl::bridge::object_id]>+<internal::bridge::object_id> 値)。
182 無効なset_list_values(
const coll_key &
coll_key 、
const std::vector[internal::bridge::decimal 128 ] >= 値)。
183 無効 なset_list_values(
const coll_key &
coll_key 、
Const std::vector[binary]>=<binary> 値)。
184 無効 なset_list_values(
const coll_key &
coll_key 、
const std::vector+<mixed> 値)。
185 empty set_list_values (
const coll_key &
coll_key 、
const std::vector=timestamp=================================================<timestamp>
187 void set_list_values(
const col_key&
col_key,
const std::vector<std::optional<int64_t>>& values);
188 void set_list_values(
const col_key&
col_key,
const std::vector<std::optional<bool>>& values);
189 void set_list_values(
const col_key&
col_key,
const std::vector<std::optional<double>>& values);
190 void set_list_values(
const col_key&
col_key,
const std::vector<std::optional<std::string>>& values);
191 void set_list_values(
const col_key&
col_key,
const std::vector<std::optional<obj_key>>& values);
192 void set_list_values(
const col_key&
col_key,
const std::vector<std::optional<internal::bridge::uuid>>& values);
193 void set_list_values(
const col_key&
col_key,
const std::vector<std::optional<internal::bridge::object_id>>& values);
194 void set_list_values(
const col_key&
col_key,
const std::vector<std::optional<binary>>& values);
195 void set_list_values(
const col_key&
col_key,
const std::vector<std::optional<timestamp>>& values);
197 テンプレート<
typename ValueType>
198 無効なset_list_values(
const coll_key &
coll_key 、
Const std::vector<ValueType>+ 値) {
199 2 ::vector=typename internal::type_info::type_info=ValueType,になります====================================================================
200 for (
auto v : values) {
201 場合 constexpr (std::is_pointer_v<ValueType>) {
205 m_obj = これ->get_table().create_object_with_primary_key(
internal::bridge::混合(serialize(pk.value)))
207 m_obj = m_obj =This->get_table().create_object()
209 std::apply([+m_obj, &v](
auto & & ...p) {
210(
accessor <
typename std:: decay_t {
Decltype (p)>::Result,
null より::set(
211 m_obj, m_obj.get_table().get_corumn_key(p.name),
212 (*v).*(std::decay_t<
Decltype (p)>::ptr)), ...)、
214 v 2 .push_back(m_obj.get_key())
216 v 2 .push_back(::realm::serialize(v))
222 [[nodiscard]]
obj_key get_key()
const 。
223 [[nodiscard]]
obj_link get_link()
const .
227 obj create_and_set_linked_object(
const coll_key &)
229 empty to_json(std::
ostream +out) は次の例外を
スローします。
231 インライン const Obj* get_obj()
const;
232 inline Obj* get_obj();
233 友人 インライン const Obj* get_obj(
const obj&);
234 友人 inline Obj* get_obj(
obj&);
237#ifdef CPREALM_HAV_GENERTED_BRIDGE_TypeS
238 storage::Obj m_obj[ 1 ]
240std::shared_ptr[Obj]<Obj> m_obj
246 テーブルget_table(uint 32 _table_key)
247 テーブルget_table(
const std::string(Table_key))
249std::reference_ wrapper[realm]<realm> m_realm。
252 std::stringtable_name_for_object_type(
const std::string())
Definition: lnklst.hpp:33
Definition: obj_key.hpp:33
Definition: obj_key.hpp:53