6 #ifndef IROHA_ON_DEMAND_ORDERING_GATE_HPP 7 #define IROHA_ON_DEMAND_ORDERING_GATE_HPP 11 #include <shared_mutex> 24 class TxPresenceCache;
36 std::shared_ptr<OnDemandOrderingService> ordering_service,
37 std::shared_ptr<transport::OdOsNotification> network_client,
38 std::shared_ptr<shared_model::interface::UnsafeProposalFactory>
40 std::shared_ptr<ametsuchi::TxPresenceCache> tx_cache,
41 size_t transaction_limit,
47 std::shared_ptr<shared_model::interface::TransactionBatch> batch)
55 std::optional<network::OrderingEvent> processProposalRequest(
61 void sendCachedTransactions();
66 std::shared_ptr<const shared_model::interface::Proposal>
67 removeReplaysAndDuplicates(
68 std::shared_ptr<const shared_model::interface::Proposal> proposal)
74 size_t transaction_limit_;
75 std::shared_ptr<OnDemandOrderingService> ordering_service_;
76 std::shared_ptr<transport::OdOsNotification> network_client_;
77 std::shared_ptr<shared_model::interface::UnsafeProposalFactory>
79 std::shared_ptr<ametsuchi::TxPresenceCache> tx_cache_;
81 std::shared_ptr<const LedgerState> current_ledger_state_;
83 std::shared_timed_mutex stop_mutex_;
84 bool stop_requested_{
false};
90 #endif // IROHA_ON_DEMAND_ORDERING_GATE_HPP Definition: round_switch.hpp:18
Definition: block_query.hpp:17
Definition: ordering_gate.hpp:27
Definition: on_demand_common.hpp:27
std::shared_ptr< Logger > LoggerPtr
Definition: logger_fwd.hpp:22
Definition: block_query.hpp:15
Definition: on_demand_ordering_gate.hpp:33