6 #ifndef IROHA_ON_DEMAND_CONNECTION_MANAGER_HPP 7 #define IROHA_ON_DEMAND_CONNECTION_MANAGER_HPP 13 #include <shared_mutex> 47 std::shared_ptr<transport::OdOsNotificationFactory> factory,
51 std::shared_ptr<transport::OdOsNotificationFactory> factory,
72 struct CurrentConnections {
74 std::optional<std::unique_ptr<transport::OdOsNotification>>>
79 std::shared_ptr<transport::OdOsNotificationFactory> factory_;
81 CurrentConnections connections_;
83 std::shared_timed_mutex mutex_;
84 std::atomic_bool stop_requested_{
false};
90 #endif // IROHA_ON_DEMAND_CONNECTION_MANAGER_HPP Definition: on_demand_connection_manager.hpp:41
Definition: on_demand_connection_manager.hpp:31
~OnDemandConnectionManager() override
Definition: on_demand_connection_manager.cpp:29
PeerType
Definition: on_demand_connection_manager.hpp:31
void onBatches(CollectionType batches) override
Definition: on_demand_connection_manager.cpp:34
Definition: on_demand_connection_manager.hpp:31
std::shared_ptr< Logger > LoggerPtr
Definition: logger_fwd.hpp:22
Definition: on_demand_connection_manager.hpp:23
void initializeConnections(const CurrentPeers &peers)
Definition: on_demand_connection_manager.cpp:73
std::array< T, kCount > PeerCollectionType
Collection with value types which represent peers.
Definition: on_demand_connection_manager.hpp:35
Definition: block_query.hpp:15
PeerCollectionType< std::shared_ptr< shared_model::interface::Peer > > peers
Definition: on_demand_connection_manager.hpp:43
OnDemandConnectionManager(std::shared_ptr< transport::OdOsNotificationFactory > factory, logger::LoggerPtr log)
Definition: on_demand_connection_manager.cpp:16
Definition: on_demand_os_transport.hpp:32
Definition: on_demand_connection_manager.hpp:31
Definition: on_demand_connection_manager.hpp:31
std::vector< TransactionBatchType > CollectionType
Definition: on_demand_os_transport.hpp:43
void onRequestProposal(consensus::Round round) override
Definition: on_demand_connection_manager.cpp:60