libdballe  7.21
db/v7/transaction.h
1 #ifndef DBALLE_DB_V7_TRANSACTION_H
2 #define DBALLE_DB_V7_TRANSACTION_H
3 
4 #include <dballe/transaction.h>
5 #include <dballe/db/v7/state.h>
6 #include <memory>
7 
8 namespace dballe {
9 namespace db {
10 namespace v7 {
11 
13 {
14  dballe::Transaction* sql_transaction = nullptr;
15  State state;
16 
17  Transaction(std::unique_ptr<dballe::Transaction> sql_transaction)
18  : sql_transaction(sql_transaction.release()) {}
19  Transaction(const Transaction&) = delete;
20  Transaction(Transaction&&) = delete;
21  Transaction& operator=(const Transaction&) = delete;
22  Transaction& operator=(Transaction&&) = delete;
23  ~Transaction()
24  {
25  delete sql_transaction;
26  }
27 
28  void commit() override { sql_transaction->commit(); }
29  void rollback() override { sql_transaction->rollback(); }
30 
31  static Transaction& downcast(dballe::Transaction& transaction);
32 };
33 
34 }
35 }
36 }
37 #endif
A RAII transaction interface.
Definition: transaction.h:15
void commit() override
Commit this transaction.
Definition: db/v7/transaction.h:28
Cache intermediate results during a database transaction, to avoid hitting the database multiple time...
Definition: state.h:140
Copyright (C) 2008–2010 ARPA-SIM urpsim@smr.arpa.emr.it
Definition: cmdline.h:17
Definition: db/v7/transaction.h:12
void rollback() override
Roll back this transaction.
Definition: db/v7/transaction.h:29