6 #ifndef IROHA_STORAGE_BASE_HPP 7 #define IROHA_STORAGE_BASE_HPP 12 #include <shared_mutex> 14 #include <boost/optional.hpp> 28 class QueryResponseFactory;
31 class PendingTransactionStorage;
37 class PostgresOptions;
41 std::shared_ptr<BlockStorage> block_store_;
42 std::function<void(std::shared_ptr<shared_model::interface::Block const>)>
44 std::shared_ptr<shared_model::interface::PermissionToString>
46 std::shared_ptr<PendingTransactionStorage> pending_txs_storage_;
47 std::shared_ptr<shared_model::interface::QueryResponseFactory>
48 query_response_factory_;
49 std::unique_ptr<BlockStorageFactory> temporary_block_storage_factory_;
50 std::optional<std::reference_wrapper<const VmCaller>> vm_caller_ref_;
53 boost::optional<std::shared_ptr<const iroha::LedgerState>> ledger_state_;
54 bool prepared_blocks_enabled_;
55 std::atomic<bool> block_is_prepared_;
56 std::string prepared_block_name_;
60 std::shared_ptr<const shared_model::interface::Block> block,
64 std::unique_ptr<Indexer> indexer);
75 boost::optional<std::shared_ptr<PeerQuery>> createPeerQuery()
78 bool preparedCommitEnabled()
const override;
82 auto block_query = getBlockQuery();
83 if (not block_query) {
86 return boost::make_optional(block_query);
94 return block_is_prepared_;
101 std::shared_ptr<shared_model::interface::PermissionToString>
permConverter()
103 return perm_converter_;
111 return pending_txs_storage_;
115 return temporary_block_storage_factory_;
118 std::shared_ptr<shared_model::interface::QueryResponseFactory>
120 return query_response_factory_;
123 std::optional<std::reference_wrapper<const VmCaller>>
vmCaller()
const {
124 return vm_caller_ref_;
127 boost::optional<std::shared_ptr<const iroha::LedgerState>>
ledgerState()
129 return ledger_state_;
133 boost::optional<std::shared_ptr<const iroha::LedgerState>>
const 135 ledger_state_ = value;
139 std::shared_ptr<const shared_model::interface::Block> block)
override;
143 boost::optional<std::shared_ptr<const iroha::LedgerState>> getLedgerState()
147 std::unique_ptr<MutableStorage> mutable_storage)
override;
149 void prepareBlockImpl(std::unique_ptr<TemporaryWsv> wsv,
156 std::shared_ptr<const shared_model::interface::Block> block);
159 boost::optional<std::shared_ptr<const iroha::LedgerState>> ledger_state,
160 std::shared_ptr<BlockStorage> block_store,
161 std::shared_ptr<shared_model::interface::PermissionToString>
163 std::shared_ptr<PendingTransactionStorage> pending_txs_storage,
164 std::shared_ptr<shared_model::interface::QueryResponseFactory>
165 query_response_factory,
166 std::unique_ptr<BlockStorageFactory> temporary_block_storage_factory,
167 std::optional<std::reference_wrapper<const VmCaller>> vm_caller_ref,
169 std::string
const &prepared_block_name,
171 std::shared_ptr<shared_model::interface::Block const>)> callback,
172 bool prepared_blocks_enabled);
179 #endif // IROHA_STORAGE_BASE_HPP
auto & temporaryBlockStorageFactory()
Definition: storage_base.hpp:114
Definition: block_query.hpp:17
auto & blockIsPrepared()
Definition: storage_base.hpp:93
Definition: result_fwd.hpp:27
std::shared_ptr< shared_model::interface::PermissionToString > permConverter() const
Definition: storage_base.hpp:101
std::shared_ptr< Logger > LoggerPtr
Definition: logger_fwd.hpp:22
logger::LoggerManagerTreePtr logManager() const
Definition: storage_base.hpp:89
Definition: storage.hpp:37
boost::optional< std::shared_ptr< BlockQuery > > createBlockQuery() const override
Definition: storage_base.hpp:80
std::shared_ptr< PendingTransactionStorage > pendingTxStorage() const
Definition: storage_base.hpp:110
Definition: wsv_command.hpp:51
Definition: block_query.hpp:15
void ledgerState(boost::optional< std::shared_ptr< const iroha::LedgerState >> const &value)
Definition: storage_base.hpp:132
Definition: command_executor.hpp:14
Definition: wsv_query.hpp:23
std::shared_ptr< LoggerManagerTree > LoggerManagerTreePtr
Definition: logger_manager_fwd.hpp:14
std::shared_ptr< BlockStorage > blockStore() const
Definition: storage_base.hpp:97
Definition: db_transaction.hpp:13
std::shared_ptr< shared_model::interface::QueryResponseFactory > queryResponseFactory() const
Definition: storage_base.hpp:119
logger::LoggerPtr log() const
Definition: storage_base.hpp:106
boost::optional< std::shared_ptr< const iroha::LedgerState > > ledgerState() const
Definition: storage_base.hpp:127
Definition: storage_base.hpp:40
std::optional< std::reference_wrapper< const VmCaller > > vmCaller() const
Definition: storage_base.hpp:123