hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
rocksdb_block_storage.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_ROCKSDB_BLOCK_STORAGE_HPP
7 #define IROHA_ROCKSDB_BLOCK_STORAGE_HPP
8 
10 
12 #include "logger/logger_fwd.hpp"
13 
14 namespace iroha::ametsuchi {
15  struct RocksDBContext;
16 
18  public:
20  std::shared_ptr<RocksDBContext> db_context,
21  std::shared_ptr<shared_model::interface::BlockJsonConverter>
22  json_converter,
23  logger::LoggerPtr log);
24 
25  bool insert(
26  std::shared_ptr<const shared_model::interface::Block> block) override;
27 
28  boost::optional<std::unique_ptr<shared_model::interface::Block>> fetch(
29  shared_model::interface::types::HeightType height) const override;
30 
31  size_t size() const override;
32 
33  void reload() override;
34 
35  void clear() override;
36 
38  FunctionType function) const override;
39 
40  private:
41  std::shared_ptr<RocksDBContext> db_context_;
42  std::shared_ptr<shared_model::interface::BlockJsonConverter>
43  json_converter_;
44  logger::LoggerPtr log_;
45  };
46 
47 } // namespace iroha::ametsuchi
48 
49 #endif // IROHA_ROCKSDB_BLOCK_STORAGE_HPP
void reload() override
Definition: rocksdb_block_storage.cpp:108
Definition: block_query.hpp:17
uint64_t HeightType
Type of height (for Block, Proposal etc)
Definition: types.hpp:48
std::function< expected::Result< void, std::string >(std::shared_ptr< const shared_model::interface::Block >)> FunctionType
type of function which can be applied to the elements of the storage
Definition: block_storage.hpp:56
Definition: block_storage.hpp:23
expected::Result< void, std::string > forEach(FunctionType function) const override
Definition: rocksdb_block_storage.cpp:120
Definition: result_fwd.hpp:27
bool insert(std::shared_ptr< const shared_model::interface::Block > block) override
Definition: rocksdb_block_storage.cpp:47
void clear() override
Definition: rocksdb_block_storage.cpp:110
std::shared_ptr< Logger > LoggerPtr
Definition: logger_fwd.hpp:22
RocksDbBlockStorage(std::shared_ptr< RocksDBContext > db_context, std::shared_ptr< shared_model::interface::BlockJsonConverter > json_converter, logger::LoggerPtr log)
Definition: rocksdb_block_storage.cpp:39
boost::optional< std::unique_ptr< shared_model::interface::Block > > fetch(shared_model::interface::types::HeightType height) const override
Definition: rocksdb_block_storage.cpp:71
size_t size() const override
Definition: rocksdb_block_storage.cpp:99
Definition: rocksdb_block_storage.hpp:17