hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
gate_object.hpp
Go to the documentation of this file.
1 
6 #ifndef CONSENSUS_GATE_OBJECT_HPP
7 #define CONSENSUS_GATE_OBJECT_HPP
8 
9 #include <boost/variant.hpp>
10 #include "consensus/round.hpp"
11 #include "cryptography/hash.hpp"
14 
15 namespace shared_model {
16  namespace interface {
17  class Block;
18  } // namespace interface
19 } // namespace shared_model
20 
21 namespace iroha {
22  namespace consensus {
23 
25  struct PairValid {
26  std::shared_ptr<shared_model::interface::Block> block;
28  };
29 
31  struct VoteOther {
35  };
36 
38  struct ProposalReject {
40  };
41 
43  struct BlockReject {
45  };
46 
48  struct AgreementOnNone {
50  };
51 
52  using GateObject = boost::variant<PairValid,
53  VoteOther,
57 
58  } // namespace consensus
59 } // namespace iroha
60 
61 extern template class boost::variant<iroha::consensus::PairValid,
66 
67 #endif // CONSENSUS_GATE_OBJECT_HPP
Current pair is valid.
Definition: gate_object.hpp:25
Definition: hash.hpp:18
Network votes for another pair and round.
Definition: gate_object.hpp:31
Agreement on <None, None>
Definition: gate_object.hpp:48
std::shared_ptr< shared_model::interface::Block > block
Definition: gate_object.hpp:26
consensus::Round round
Definition: gate_object.hpp:44
Definition: block_query.hpp:16
shared_model::interface::types::HashType hash
Definition: gate_object.hpp:33
Reject on proposal.
Definition: gate_object.hpp:38
boost::variant< PairValid, VoteOther, ProposalReject, BlockReject, AgreementOnNone > GateObject
Definition: gate_object.hpp:56
consensus::Round round
Definition: gate_object.hpp:49
consensus::Round round
Definition: gate_object.hpp:27
shared_model::interface::types::PublicKeyCollectionType public_keys
Definition: gate_object.hpp:32
std::vector< PubkeyType > PublicKeyCollectionType
Type of public keys&#39; collection.
Definition: types.hpp:47
Definition: round.hpp:31
consensus::Round round
Definition: gate_object.hpp:34
consensus::Round round
Definition: gate_object.hpp:39
Definition: command_executor.hpp:12
Reject on block.
Definition: gate_object.hpp:43