6 #ifndef IROHA_STORAGE_IMPL_HPP 7 #define IROHA_STORAGE_IMPL_HPP 11 #include <soci/soci.h> 15 class QueryResponseFactory;
20 class PendingTransactionStorage;
25 class PostgresOptions;
32 std::shared_ptr<PoolWrapper> pool_wrapper,
33 std::shared_ptr<shared_model::interface::PermissionToString>
35 std::shared_ptr<PendingTransactionStorage> pending_txs_storage,
36 std::shared_ptr<shared_model::interface::QueryResponseFactory>
37 query_response_factory,
38 std::unique_ptr<BlockStorageFactory> temporary_block_storage_factory,
39 std::shared_ptr<BlockStorage> persistent_block_storage,
40 std::optional<std::reference_wrapper<const VmCaller>> vm_caller_ref,
42 std::shared_ptr<shared_model::interface::Block const>)> callback,
44 size_t pool_size = 10);
47 createCommandExecutor()
override;
49 std::unique_ptr<TemporaryWsv> createTemporaryWsv(
50 std::shared_ptr<CommandExecutor> command_executor)
override;
52 boost::optional<std::unique_ptr<SettingQuery>> createSettingQuery()
57 std::shared_ptr<PendingTransactionStorage> pending_txs_storage,
58 std::shared_ptr<shared_model::interface::QueryResponseFactory>
59 response_factory)
const override;
65 createMutableStorage(std::shared_ptr<CommandExecutor> command_executor,
70 std::shared_ptr<CommandExecutor> command_executor)
override;
74 void freeConnections()
override;
77 std::shared_ptr<const shared_model::interface::Block> block)
override;
79 std::shared_ptr<WsvQuery> getWsvQuery()
const override;
81 std::shared_ptr<BlockQuery> getBlockQuery()
const override;
83 void prepareBlock(std::unique_ptr<TemporaryWsv> wsv)
override;
89 boost::optional<std::shared_ptr<const iroha::LedgerState>>
92 std::shared_ptr<BlockStorage> block_store,
93 std::shared_ptr<PoolWrapper> pool_wrapper,
94 std::shared_ptr<shared_model::interface::PermissionToString>
96 std::shared_ptr<PendingTransactionStorage> pending_txs_storage,
97 std::shared_ptr<shared_model::interface::QueryResponseFactory>
98 query_response_factory,
99 std::unique_ptr<BlockStorageFactory> temporary_block_storage_factory,
101 std::optional<std::reference_wrapper<const VmCaller>> vm_caller,
103 std::shared_ptr<shared_model::interface::Block const>)> callback,
107 friend class ::iroha::ametsuchi::AmetsuchiTest;
112 void tryRollback(soci::session &session);
115 std::shared_ptr<PoolWrapper> pool_wrapper_;
116 std::shared_ptr<soci::connection_pool> &connection_;
117 mutable std::shared_timed_mutex drop_mutex_;
118 const size_t pool_size_;
119 std::string prepared_block_name_;
124 #endif // IROHA_STORAGE_IMPL_HPP
Definition: block_query.hpp:17
Definition: postgres_options.hpp:19
Definition: result_fwd.hpp:27
Definition: block_query.hpp:15
std::shared_ptr< LoggerManagerTree > LoggerManagerTreePtr
Definition: logger_manager_fwd.hpp:14
Definition: block_storage_factory.hpp:19
Definition: storage_base.hpp:40
Definition: command_executor.hpp:13
Definition: storage_impl.hpp:28