hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
consensus_gate.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_CONSENSUS_GATE_HPP
7 #define IROHA_CONSENSUS_GATE_HPP
8 
9 #include <rxcpp/rx.hpp>
11 
12 namespace shared_model {
13  namespace interface {
14  class Block;
15  class Proposal;
16  } // namespace interface
17 } // namespace shared_model
18 
19 namespace iroha {
20 
21  namespace simulator {
22  struct BlockCreatorEvent;
23  } // namespace simulator
24 
25  namespace network {
26 
30  class ConsensusGate {
31  public:
33 
37  virtual void vote(const simulator::BlockCreatorEvent &event) = 0;
38 
40 
44  virtual rxcpp::observable<consensus::GateObject> onOutcome() = 0;
45 
46  virtual ~ConsensusGate() = default;
47  };
48 
49  } // namespace network
50 } // namespace iroha
51 
52 #endif // IROHA_CONSENSUS_GATE_HPP
Definition: block_creator_common.hpp:33
consensus::GateObject GateObject
Definition: consensus_gate.hpp:39
Definition: block_query.hpp:16
Definition: consensus_gate.hpp:30
iroha::consensus::GateObject GateObject
Definition: gate_object.cpp:8
Definition: round.hpp:31
Definition: command_executor.hpp:12