6 #ifndef IROHA_ON_DEMAND_CONNECTION_MANAGER_HPP 7 #define IROHA_ON_DEMAND_CONNECTION_MANAGER_HPP 12 #include <shared_mutex> 14 #include <rxcpp/rx-lite.hpp> 55 std::shared_ptr<transport::OdOsNotificationFactory> factory,
56 rxcpp::observable<CurrentPeers>
peers,
60 std::shared_ptr<transport::OdOsNotificationFactory> factory,
61 rxcpp::observable<CurrentPeers>
peers,
77 struct CurrentConnections {
79 boost::optional<std::unique_ptr<transport::OdOsNotification>>>
90 std::shared_ptr<transport::OdOsNotificationFactory> factory_;
91 rxcpp::composite_subscription subscription_;
93 CurrentConnections connections_;
95 std::shared_timed_mutex mutex_;
96 std::atomic_bool stop_requested_{
false};
102 #endif // IROHA_ON_DEMAND_CONNECTION_MANAGER_HPP Definition: on_demand_connection_manager.hpp:49
Definition: on_demand_connection_manager.hpp:38
~OnDemandConnectionManager() override
Definition: on_demand_connection_manager.cpp:42
PeerType
Definition: on_demand_connection_manager.hpp:32
void onBatches(CollectionType batches) override
Definition: on_demand_connection_manager.cpp:48
Definition: on_demand_connection_manager.hpp:34
boost::optional< std::shared_ptr< const ProposalType > > onRequestProposal(consensus::Round round) override
Definition: on_demand_connection_manager.cpp:78
std::shared_ptr< Logger > LoggerPtr
Definition: logger_fwd.hpp:22
Definition: on_demand_connection_manager.hpp:23
std::array< T, kCount > PeerCollectionType
Collection with value types which represent peers.
Definition: on_demand_connection_manager.hpp:43
Definition: block_query.hpp:15
PeerCollectionType< std::shared_ptr< shared_model::interface::Peer > > peers
Definition: on_demand_connection_manager.hpp:51
Definition: on_demand_connection_manager.hpp:36
Definition: on_demand_connection_manager.hpp:33
Definition: on_demand_os_transport.hpp:35
OnDemandConnectionManager(std::shared_ptr< transport::OdOsNotificationFactory > factory, rxcpp::observable< CurrentPeers > peers, logger::LoggerPtr log)
Definition: on_demand_connection_manager.cpp:18
Definition: on_demand_connection_manager.hpp:37
std::vector< TransactionBatchType > CollectionType
Definition: on_demand_os_transport.hpp:65
Definition: on_demand_connection_manager.hpp:35