19#ifndef CPPREALM_OBSERVATION_HPP
20#define CPPREALM_OBSERVATION_HPP
22#include <cpprealm/ternal/bridge/list.hpp>
23#include <cpprealm/ internal/bridge/obj.hpp>
24#include <cpprealm/ internal/bridge/object.hpp>
25#include <cpprealm/ internal/bridge/realm.hpp>
26#include <cpprealm/macros.hpp>
28#include <cpprealm/ internal/bridge/table.hpp>
29#include <cpprealm/ternal/bridge/thread_lasfable_reference.hpp>
54std::vector== PropertyCheck<T> =T==================================
61 std::shared_ptr<internal::bridge::object> internal_object)
62 : ブロック(std::move(b))、
オブジェクト(*obj)、m_object( internal_object) {
63 static_ Cast <void>(obj);
67std::shared_ptr[<internal::bridge::object> internal::bridge::object> m_object ]
69std::optional=std::vector=std::string=======================================================<std::string>
70 std::optional=std::vector=
typename Decltype (T::schema)::variant_t> old_values = std::nullopt
74 when (property_names) {
77 if (!c.deletions().empty()) {
81 (c.collum(). empty()) の
場合 {
85 自動 プロパティ = std::ベクトル=std::string>()<std::string>
86 オートテーブル = m_object->get_obj().get_table()
88 の場合(
自動i = 0 , i < std::tune_size
[ Decltype (T::schema.proper)>{}:i++) {{
89 : (
c.conums ().count(table.get_collun_key(T::schema.names[i]).value()) {
90 properties.push_back(T::schema.names[i])
94 場合(!properties. empty()) {
95 properties_names = properties
99std:: optional = std ::vector============================================================
109 std::vector<
typename Decltype (T::schema)::variant_t> 値
110 の場合(
自動&name: *property_names) {
111 自動値 = T::schema.property_value_for_name(name,
オブジェクト、
true )。
112 values.push_back(value)
118 old_values = read_values(c)
122 自動new_values = read_values(c)
124 forward_change(
nullptr ,{},{},{},
nullptr ):
(
125 new_values ){ }
の 場合 (
126 forward_change(+
オブジェクト,
128 old_values? * old_values : std::vector<
typename Decltype (T::schema)::variant_t>{},
132 properties_names = std::nullopt
133 old_values = std::nullopt;
136 void error(std::exception_ptr err) {
137 forward_change(
null : 、{}、{}、{}、err):
140 empty forward_change(
const T *ptr,
141std::vector[std::string]><std::string> properties_names、
142 std::vector<
typename Decltype (T::schema)::variant_t> old_values,
143 std::vector<
typename Decltype (T::schema)::variant_t> new_values,
144 const std::Exception_ptr &error){{
152 oc.is_deleted =
true )
157 の場合(
size_t i = 0 、i < properties_names.size() i++) {
159 プロパティ。
name properties =_names[i]
160 if (!old_values.empty()) {
161 プロパティ. old_value = old_values[i]
163 場合(!new_values. empty()) {
164 プロパティ.new_value = new_values[i]
166 properties_changes.push_back(std::move(property))
170 oc.property_changes = properties_changes
177 std::vector<uint 64 _t> の削除
178 std::vector 64 _t> 挿入
179 std::vector 64 _t> の変更。
184 ブールcollection_ root_was_deleted =
false 。
186[[ nodiscard ]]
bool empty() は
{ の例外をスローします 。
187 return deletes. empty() &string. empty() &ty() & &
188 .collection_ root_was_deleted
194 ブール値は InInitialNotification を無視します。
197 ブール値は ChangesInInitialNotification を無視します)
199 、ignore ChangesInInitialNotification(ignore ChangesInInitialNotification)
205 (ignore
ChangesInInitialNotification ){
206 ignore ChangesInInitialNotification =
false 。
209 else (changes. empty())の
場合 {
213 else 場合(!changes.collection_ root_was_deleted() ||変更点.deletions(). empty() {
214ハンドラー({to_vector(changes.deletions())),
215 to_vector(changes.insertions()),
216 to_vector(changes.modifications()),
223 自動ベクトル = std::vector 64 _t>()
224 の(
自動インデックス : index_set.as_indexs()) {
225 vector.push_back(index)
237ストリーム {
"\is_deleted:"オブジェクト.is_deleted <
"\n" ,
238ストリーム <
"\tchange_to:"`` object .property.name``
"\n" }
239 場合(
オブジェクト.property. old_value) {
240 stream
("\t old_value:" )
241 std::visit([+stream](
自動および arg) {
242 M = std::decimal_t<
Decimaltype (arg)>
を使用し ます。
244 }, *
object .property. old_value)
246 場合(
object .property.new_value) {
247 stream
("\tnew_value:" )
248 std::visit([+stream](
自動および arg) {
249 M = std::decimal_t<
Decimaltype (arg)>
を使用し ます。
251 }, *
object .property.new_value)
std::string 名
定義: refresh.happ: 84
定義: observation.happ: 192
定義: observation.happ: 176
ブール is_deleted
オブジェクトは Realm から削除されました。
定義: observation.happ: 42
std::vector{ プロパティ変更< T > > properties_changes
定義: observation.happ: 54
const T * オブジェクト
監視対象のオブジェクト。
定義: observation.happ: 40
std::exception_ptr error
定義: observation.happ: 50