hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
pg_connection_init.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_PG_CONNECTION_INIT_HPP
7 #define IROHA_PG_CONNECTION_INIT_HPP
8 
9 #include <soci/soci.h>
10 
11 #include <soci/callbacks.h>
12 #include <soci/postgresql/soci-postgresql.h>
13 #include <boost/algorithm/string.hpp>
14 #include <boost/range/algorithm/replace_if.hpp>
15 
20 #include "common/result.hpp"
22 #include "logger/logger_fwd.hpp"
24 #include "main/startup_params.hpp"
25 
26 namespace iroha {
27  namespace ametsuchi {
28 
29  struct PoolWrapper;
30 
32  public:
34  std::string>
35  init(StartupWsvDataPolicy startup_wsv_data_policy,
37  logger::LoggerManagerTreePtr log_manager);
38 
40  StartupWsvDataPolicy startup_wsv_data_policy,
41  const PostgresOptions &options);
42 
45  const ReconnectionStrategyFactory &reconnection_strategy_factory,
46  const PostgresOptions &options,
47  const int pool_size,
48  logger::LoggerManagerTreePtr log_manager);
49 
51  soci::session &sql, const std::string &prepared_block_name);
52 
53  /*
54  * Drop working database.
55  * @return Error message if dropping has failed.
56  */
58  const PostgresOptions &options);
59 
64  static expected::Result<void, std::string> resetPeers(soci::session &sql);
65  };
66  } // namespace ametsuchi
67 } // namespace iroha
68 
69 #endif // IROHA_PG_CONNECTION_INIT_HPP
Definition: block_query.hpp:17
Definition: postgres_options.hpp:19
Definition: reconnection_strategy.hpp:35
Definition: pg_connection_init.hpp:31
static expected::Result< std::shared_ptr< PoolWrapper >, std::string > prepareConnectionPool(const ReconnectionStrategyFactory &reconnection_strategy_factory, const PostgresOptions &options, const int pool_size, logger::LoggerManagerTreePtr log_manager)
Definition: pg_connection_init.cpp:437
Definition: result_fwd.hpp:27
static expected::Result< std::shared_ptr< iroha::ametsuchi::PoolWrapper >, std::string > init(StartupWsvDataPolicy startup_wsv_data_policy, iroha::ametsuchi::PostgresOptions const &pg_opt, logger::LoggerManagerTreePtr log_manager)
Definition: pg_connection_init.cpp:394
Definition: block_query.hpp:15
StartupWsvDataPolicy
Definition: startup_params.hpp:13
std::shared_ptr< LoggerManagerTree > LoggerManagerTreePtr
Definition: logger_manager_fwd.hpp:14
static iroha::expected::Result< void, std::string > rollbackPrepared(soci::session &sql, const std::string &prepared_block_name)
Definition: pg_connection_init.cpp:490
static expected::Result< void, std::string > dropWorkingDatabase(const PostgresOptions &options)
Definition: pg_connection_init.cpp:501
static expected::Result< void, std::string > prepareWorkingDatabase(StartupWsvDataPolicy startup_wsv_data_policy, const PostgresOptions &options)
Definition: pg_connection_init.cpp:406
static expected::Result< void, std::string > resetPeers(soci::session &sql)
Definition: pg_connection_init.cpp:511