hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
rocksdb_db_transaction.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_ROCKSDB_DB_TRANSACTION_HPP
7 #define IROHA_ROCKSDB_DB_TRANSACTION_HPP
8 
10 
12 
13 namespace iroha::ametsuchi {
14 
15  class RocksDbTransaction final : public DatabaseTransaction {
16  public:
17  RocksDbTransaction(RocksDbTransaction const &) = delete;
19 
22 
23  RocksDbTransaction(std::shared_ptr<RocksDBContext> tx_context)
24  : tx_context_(std::move(tx_context)) {
25  assert(tx_context_);
26  }
27 
28  void begin() override {}
29 
30  void savepoint(std::string const &) override {
31  RocksDbCommon common(tx_context_);
32  common.savepoint();
33  }
34 
35  void releaseSavepoint(std::string const &) override {
36  RocksDbCommon common(tx_context_);
37  common.release();
38  }
39 
40  void commit() override {
41  RocksDbCommon common(tx_context_);
42  common.commit();
43  }
44 
45  void rollback() override {
46  RocksDbCommon common(tx_context_);
47  common.rollback();
48  }
49 
50  void prepare(std::string const &) override {
51  RocksDbCommon common(tx_context_);
52  common.prepare();
53  }
54 
55  void commitPrepared(std::string const &) override {
56  RocksDbCommon common(tx_context_);
57  common.commit();
58  }
59 
60  void rollbackToSavepoint(std::string const &) override {
61  RocksDbCommon common(tx_context_);
62  common.rollbackToSavepoint();
63  }
64 
65  private:
66  std::shared_ptr<RocksDBContext> tx_context_;
67  };
68 
69 } // namespace iroha::ametsuchi
70 
71 #endif // IROHA_ROCKSDB_DB_TRANSACTION_HPP
Definition: block_query.hpp:17
Definition: rocksdb_db_transaction.hpp:15
RocksDbTransaction(RocksDbTransaction const &)=delete
void commitPrepared(std::string const &) override
Definition: rocksdb_db_transaction.hpp:55
auto rollback()
Rollback all transaction changes.
Definition: rocksdb_common.hpp:615
Definition: round.cpp:51
void rollback() override
Definition: rocksdb_db_transaction.hpp:45
auto commit()
Makes commit to DB.
Definition: rocksdb_common.hpp:605
void savepoint()
Saves current state of a transaction.
Definition: rocksdb_common.hpp:646
void rollbackToSavepoint(std::string const &) override
Definition: rocksdb_db_transaction.hpp:60
void commit() override
Definition: rocksdb_db_transaction.hpp:40
RocksDbTransaction & operator=(RocksDbTransaction const &)=delete
Definition: db_transaction.hpp:13
auto rollbackToSavepoint()
Restores to the previously saved savepoint.
Definition: rocksdb_common.hpp:652
auto prepare()
Prepare tx for 2pc.
Definition: rocksdb_common.hpp:632
Definition: rocksdb_common.hpp:557
RocksDbTransaction(std::shared_ptr< RocksDBContext > tx_context)
Definition: rocksdb_db_transaction.hpp:23
void savepoint(std::string const &) override
Definition: rocksdb_db_transaction.hpp:30
void begin() override
Definition: rocksdb_db_transaction.hpp:28
void releaseSavepoint(std::string const &) override
Definition: rocksdb_db_transaction.hpp:35
void prepare(std::string const &) override
Definition: rocksdb_db_transaction.hpp:50
auto release()
Definition: rocksdb_common.hpp:624