23 #include <couchbase/client/cluster.hxx> 24 #include <couchbase/transactions/attempt_context.hxx> 25 #include <couchbase/transactions/exceptions.hxx> 26 #include <couchbase/transactions/transaction_config.hxx> 27 #include <couchbase/transactions/transaction_result.hxx> 35 namespace transactions
39 class transactions_cleanup;
42 typedef std::function<void(attempt_context&)>
logic;
177 CB_NODISCARD
const transactions_cleanup&
cleanup()
const 186 CB_NODISCARD transactions_cleanup&
cleanup()
204 std::unique_ptr<transactions_cleanup> cleanup_;
205 const int max_attempts_{ 1000 };
206 const std::chrono::milliseconds min_retry_delay_{ 1 };
Definition: bucket.hxx:33
void close()
Shut down the transactions object.
transaction_result run(const logic &logic)
Run a transaction.
Main class for creating a transaction.
Definition: transactions.hxx:107
CB_NODISCARD transaction_config & config()
Return reference to transaction_config.
Definition: transactions.hxx:171
transactions(couchbase::cluster &cluster, const transaction_config &config)
Create a transactions object.
Results of a transaction.
Definition: transaction_result.hxx:32
void commit(attempt_context &ctx)
Definition: transactions.hxx:143
Configuration parameters for transactions.
Definition: transaction_config.hxx:38
void rollback(attempt_context &ctx)
Definition: transactions.hxx:153
~transactions()
Destructor.
Connects to a couchbase cluster, exposes cluster operations and bucket accessors. ...
Definition: cluster.hxx:172
std::function< void(attempt_context &)> logic
Transaction logic should be contained in a lambda of this form.
Definition: transactions.hxx:40
CB_NODISCARD const transactions_cleanup & cleanup() const
Definition: transactions.hxx:181
virtual void rollback()=0
Provides methods to perform transactional operations.
Definition: attempt_context.hxx:35
CB_NODISCARD couchbase::cluster & cluster_ref()
Return a reference to the cluster.
Definition: transactions.hxx:201