9 #include <boost/optional.hpp> 12 #include <rxcpp/rx.hpp> 25 class YacCryptoProvider;
34 static std::shared_ptr<Yac>
create(
36 std::shared_ptr<YacNetwork> network,
37 std::shared_ptr<YacCryptoProvider> crypto,
38 std::shared_ptr<Timer> timer,
43 std::shared_ptr<YacNetwork> network,
44 std::shared_ptr<YacCryptoProvider> crypto,
45 std::shared_ptr<Timer> timer,
53 rxcpp::observable<Answer>
onOutcome()
override;
57 void onState(std::vector<VoteMessage> state)
override;
78 boost::optional<std::shared_ptr<shared_model::interface::Peer>>
82 void applyState(
const std::vector<VoteMessage> &state);
85 void propagateState(
const std::vector<VoteMessage> &msg);
87 const std::vector<VoteMessage> &msg);
91 std::shared_ptr<YacNetwork> network_;
92 std::shared_ptr<YacCryptoProvider> crypto_;
93 std::shared_ptr<Timer> timer_;
94 rxcpp::subjects::subject<Answer> notifier_;
107 #endif // IROHA_YAC_HPP Definition: cluster_order.hpp:28
Yac(YacVoteStorage vote_storage, std::shared_ptr< YacNetwork > network, std::shared_ptr< YacCryptoProvider > crypto, std::shared_ptr< Timer > timer, ClusterOrdering order, logger::Logger log=logger::log("YAC"))
Definition: yac.cpp:50
static std::shared_ptr< Yac > create(YacVoteStorage vote_storage, std::shared_ptr< YacNetwork > network, std::shared_ptr< YacCryptoProvider > crypto, std::shared_ptr< Timer > timer, ClusterOrdering order, logger::Logger log=logger::log("YAC"))
Definition: yac.cpp:39
Definition: yac_hash_provider.hpp:30
Definition: yac_gate.hpp:26
Definition: yac_vote_storage.hpp:59
void vote(YacHash hash, ClusterOrdering order) override
Definition: yac.cpp:65
std::shared_ptr< spdlog::logger > Logger
Definition: logger.hpp:26
Definition: block_query.hpp:16
hash256_t hash(const T &pb)
Definition: pb_common.hpp:43
Logger log(const std::string &tag)
Definition: logger.cpp:48
rxcpp::observable< Answer > onOutcome() override
Definition: yac.cpp:77
void onState(std::vector< VoteMessage > state) override
Definition: yac.cpp:83
Definition: vote_message.hpp:22
Definition: yac_network_interface.hpp:24