1#ifndef _DITTO_TRANSACTION_
2#define _DITTO_TRANSACTION_
4#include "QueryResult.hpp"
27 bool read_only =
false;
80enum class TransactionCompletionAction {
106void transaction_execute_cb(
107 void *env_ptr, dittoffi_result_dittoffi_query_result_ptr_t ffi_result);
113 friend void ditto::internal::transaction_execute_cb(
114 void *env_ptr, dittoffi_result_dittoffi_query_result_ptr_t ffi_result);
117 std::unique_ptr<Impl> impl;
119 explicit Transaction(
Impl *impl);
121 static TransactionCompletionAction
123 const std::function<TransactionCompletionAction(Transaction &)> &fn);
125#ifdef DITTO_INTERNAL_TESTING
128 TransactionCompletionAction complete(TransactionCompletionAction action);
135 Transaction(
const Transaction &) =
delete;
136 Transaction &operator=(
const Transaction &) =
delete;
Represents the returned results when executing a DQL query, containing a QueryResultItem for each mat...
Definition QueryResult.hpp:121
Provides access to Collections and a transaction API.
Definition Store.hpp:63
TransactionInfo get_info() const
Provides information about the transaction.
Definition Transaction.cpp:241
QueryResult execute(std::string query, nlohmann::json query_args=nullptr)
Executes a DQL query and returns matching items as a query result.
Definition Transaction.cpp:245
Store & get_store() const
The Store this transaction belongs to.
Definition Transaction.cpp:243
~Transaction()
Destructor.
Definition Transaction.cpp:239
Options for configuring a transaction.
Definition Transaction.hpp:25
const std::string & get_hint() const
Get hint value.
Definition TransactionOptions.cpp:17
TransactionOptions & set_hint(std::string hint)
Set a hint for the transaction, which is logged.
Definition TransactionOptions.cpp:12
TransactionOptions()=default
Constructor sets read_only false and no hint
bool get_read_only() const
Get read_only value.
Definition TransactionOptions.cpp:10
TransactionOptions & set_read_only(bool read_only)
Set a flag indicating whether the transaction is read-only.
Definition TransactionOptions.cpp:5
Represents a transaction in the Ditto store.
Definition Transaction.hpp:105
Definition Transaction.cpp:80
Encapsulates information about a transaction.
Definition Transaction.hpp:56
std::string id
A globally unique ID of the transaction.
Definition Transaction.hpp:58
std::string hint
The user hint passed when creating the transaction, useful for debugging and testing.
Definition Transaction.hpp:62
bool is_read_only
Indicates whether mutating DQL statements can be executed in the transaction.
Definition Transaction.hpp:69