hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
postgres_db_transaction.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_POSTGRES_DB_TRANSACTION_HPP
7 #define IROHA_POSTGRES_DB_TRANSACTION_HPP
8 
10 
11 #include <soci/soci.h>
12 
13 namespace iroha::ametsuchi {
14 
16  public:
19 
22 
23  PostgresDbTransaction(soci::session &sql) : sql_(sql) {}
24 
25  void begin() override {
26  sql_ << "BEGIN";
27  }
28 
29  void prepare(std::string const &name) override {
30  sql_ << "PREPARE TRANSACTION '" + name + "';";
31  }
32 
33  void commitPrepared(std::string const &name) override {
34  sql_ << "COMMIT PREPARED '" + name + "';";
35  }
36 
37  void savepoint(std::string const &name) override {
38  sql_ << "SAVEPOINT " + name + ";";
39  }
40 
41  void releaseSavepoint(std::string const &name) override {
42  sql_ << "RELEASE SAVEPOINT " + name + ";";
43  }
44 
45  void commit() override {
46  sql_ << "COMMIT";
47  }
48 
49  void rollback() override {
50  sql_ << "ROLLBACK";
51  }
52 
53  void rollbackToSavepoint(std::string const &name) override {
54  sql_ << "ROLLBACK TO SAVEPOINT " + name + ";";
55  }
56 
57  private:
58  soci::session &sql_;
59  };
60 
61 } // namespace iroha::ametsuchi
62 
63 #endif // IROHA_POSTGRES_DB_TRANSACTION_HPP
Definition: block_query.hpp:17
void savepoint(std::string const &name) override
Definition: postgres_db_transaction.hpp:37
void releaseSavepoint(std::string const &name) override
Definition: postgres_db_transaction.hpp:41
void commit() override
Definition: postgres_db_transaction.hpp:45
void prepare(std::string const &name) override
Definition: postgres_db_transaction.hpp:29
void begin() override
Definition: postgres_db_transaction.hpp:25
PostgresDbTransaction(PostgresDbTransaction const &)=delete
Definition: db_transaction.hpp:13
void rollback() override
Definition: postgres_db_transaction.hpp:49
void rollbackToSavepoint(std::string const &name) override
Definition: postgres_db_transaction.hpp:53
void commitPrepared(std::string const &name) override
Definition: postgres_db_transaction.hpp:33
PostgresDbTransaction(soci::session &sql)
Definition: postgres_db_transaction.hpp:23
PostgresDbTransaction & operator=(PostgresDbTransaction const &)=delete
Definition: postgres_db_transaction.hpp:15