void begin(SharedGroup& sg, ClientHistory& history, BindingContext* context, bool validate_schema_changes) { TransactLogObserver(context, sg, [&](auto&&... args) { LangBindHelper::promote_to_write(sg, history, std::move(args)...); }, validate_schema_changes); }
void advance(SharedGroup& sg, TransactionChangeInfo& info, VersionID version) { if (!info.track_all && info.table_modifications_needed.empty() && info.lists.empty()) { LangBindHelper::advance_read(sg, version); } else { LangBindHelper::advance_read(sg, TransactLogObserver(info), version); } }
void cancel(SharedGroup& sg, ClientHistory& history, BindingContext* context) { TransactLogObserver(context, sg, [&](auto&&... args) { LangBindHelper::rollback_and_continue_as_read(sg, history, std::move(args)...); }, false); }
void advance(SharedGroup& sg, ClientHistory& history, BindingContext* context) { TransactLogObserver(context, sg, [&](auto&&... args) { LangBindHelper::advance_read(sg, history, std::move(args)...); }, true); }
void advance(SharedGroup& sg, BindingContext* context, SharedGroup::VersionID version) { TransactLogObserver(context, sg, [&](auto&&... args) { LangBindHelper::advance_read(sg, std::move(args)..., version); }, true); }