hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
network_impl.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_NETWORK_IMPL_HPP
7 #define IROHA_NETWORK_IMPL_HPP
8 
9 #include "consensus/yac/transport/yac_network_interface.hpp" // for YacNetwork
10 #include "yac.grpc.pb.h"
11 
12 #include <memory>
13 #include <mutex>
14 
16 #include "logger/logger_fwd.hpp"
18 
19 namespace iroha::consensus::yac {
24  class NetworkImpl : public YacNetwork {
25  public:
26  using Service = proto::Yac;
28 
30  ::iroha::consensus::yac::proto::Yac>> client_factory,
31  logger::LoggerPtr log);
32 
34  const std::vector<VoteMessage> &state) override;
35 
36  void stop() override;
37 
38  private:
42  std::unique_ptr<ClientFactory> client_factory_;
43 
44  std::mutex stop_mutex_;
45  bool stop_requested_{false};
46 
47  logger::LoggerPtr log_;
48  };
49 } // namespace iroha::consensus::yac
50 
51 #endif // IROHA_NETWORK_IMPL_HPP
NetworkImpl(std::unique_ptr< iroha::network::ClientFactory< ::iroha::consensus::yac::proto::Yac >> client_factory, logger::LoggerPtr log)
Definition: network_impl.cpp:24
Definition: yac_network_interface.hpp:33
Definition: peer.hpp:20
void stop() override
Prevent any new outgoing network activity. Be passive.
Definition: network_impl.cpp:28
std::shared_ptr< Logger > LoggerPtr
Definition: logger_fwd.hpp:22
proto::Yac Service
Definition: network_impl.hpp:26
void sendState(const shared_model::interface::Peer &to, const std::vector< VoteMessage > &state) override
Definition: network_impl.cpp:33
Definition: network_impl.hpp:24
Definition: mst_transport_grpc.hpp:29
Definition: cluster_order.hpp:16