6#ifndef OPENCBDC_TX_SRC_PARSEC_TICKET_MACHINE_CLIENT_H_
7#define OPENCBDC_TX_SRC_PARSEC_TICKET_MACHINE_CLIENT_H_
20 explicit client(std::vector<network::endpoint_t> endpoints);
44 std::unique_ptr<cbdc::rpc::tcp_client<request, response>> m_client;
45 std::queue<ticket_number_type> m_tickets;
46 bool m_fetching_tickets{
false};
48 mutable std::mutex m_mut;
50 std::queue<get_ticket_number_callback_type> m_callbacks;
52 auto fetch_tickets() -> bool;
Ticket machine interface.
std::function< void(get_ticket_number_return_type)> get_ticket_number_callback_type
Callback function type for asynchronously handling ticket number requests.
std::pair< ticket_number_type, ticket_number_type > ticket_number_range_type
Return value from the ticket machine in the success case.
RPC client for a remote ticket machine.
auto init() -> bool
Initializes the underlying TCP client.
auto get_ticket_number(get_ticket_number_callback_type result_callback) -> bool override
Requests a new batch of ticket numbers from the remote ticket machine.
auto operator=(client &&) -> client &=delete
~client() override=default
auto operator=(const client &) -> client &=delete
client(const client &)=delete