hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
yac_gate.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_YAC_GATE_HPP
7 #define IROHA_YAC_GATE_HPP
8 
9 #include <rxcpp/rx-observable-fwd.hpp>
13 
14 namespace iroha {
15  namespace consensus {
16  namespace yac {
17 
18  class YacHash;
19  class ClusterOrdering;
20 
21  class YacGate : public network::ConsensusGate {};
22 
26  class HashGate {
27  public:
34  virtual void vote(YacHash hash,
35  ClusterOrdering order,
36  boost::optional<ClusterOrdering> alternative_order =
37  boost::none) = 0;
38 
43  virtual rxcpp::observable<Answer> onOutcome() = 0;
44 
46  virtual void stop() = 0;
47 
48  virtual ~HashGate() = default;
49  };
50  } // namespace yac
51  } // namespace consensus
52 } // namespace iroha
53 #endif // IROHA_YAC_GATE_HPP
virtual void stop()=0
Prevent any new outgoing network activity. Be passive.
Definition: cluster_order.hpp:23
Definition: yac_hash_provider.hpp:30
Definition: yac_gate.hpp:26
Definition: block_query.hpp:15
hash256_t hash(const T &pb)
Definition: pb_common.hpp:43
Definition: yac_gate.hpp:21
Definition: consensus_gate.hpp:30
virtual void vote(const simulator::BlockCreatorEvent &event)=0
virtual rxcpp::observable< consensus::GateObject > onOutcome()=0