OpenCBDC Transaction Processor
Loading...
Searching...
No Matches
cbdc::parsec::ticket_machine::rpc::client Class Reference

RPC client for a remote ticket machine. More...

#include <client.hpp>

Inheritance diagram for cbdc::parsec::ticket_machine::rpc::client:
Collaboration diagram for cbdc::parsec::ticket_machine::rpc::client:

Public Member Functions

 client (std::vector< network::endpoint_t > endpoints)
 Constructor.
 
 client ()=delete
 
 ~client () override=default
 
 client (const client &)=delete
 
auto operator= (const client &) -> client &=delete
 
 client (client &&)=delete
 
auto operator= (client &&) -> client &=delete
 
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.
 
- Public Member Functions inherited from cbdc::parsec::ticket_machine::interface
virtual ~interface ()=default
 
 interface ()=default
 
 interface (const interface &)=delete
 
auto operator= (const interface &) -> interface &=delete
 
 interface (interface &&)=delete
 
auto operator= (interface &&) -> interface &=delete
 

Additional Inherited Members

- Public Types inherited from cbdc::parsec::ticket_machine::interface
enum class  error_code : uint8_t
 Error codes returned by the ticket machine. More...
 
using ticket_number_range_type = std::pair<ticket_number_type, ticket_number_type>
 Return value from the ticket machine in the success case.
 
using get_ticket_number_return_type = std::variant<ticket_number_range_type, error_code>
 Return value from the ticket machine.
 
using get_ticket_number_callback_type = std::function<void(get_ticket_number_return_type)>
 Callback function type for asynchronously handling ticket number requests.
 

Detailed Description

RPC client for a remote ticket machine.

Definition at line 15 of file parsec/ticket_machine/client.hpp.

Constructor & Destructor Documentation

◆ client() [1/4]

cbdc::parsec::ticket_machine::rpc::client::client ( std::vector< network::endpoint_t > endpoints)
explicit

Constructor.

Parameters
endpointsRPC server endpoints for the ticket machine cluster.

Definition at line 11 of file parsec/ticket_machine/client.cpp.

◆ client() [2/4]

cbdc::parsec::ticket_machine::rpc::client::client ( )
delete

◆ ~client()

cbdc::parsec::ticket_machine::rpc::client::~client ( )
overridedefault

◆ client() [3/4]

cbdc::parsec::ticket_machine::rpc::client::client ( const client & )
delete

◆ client() [4/4]

cbdc::parsec::ticket_machine::rpc::client::client ( client && )
delete

Member Function Documentation

◆ get_ticket_number()

auto cbdc::parsec::ticket_machine::rpc::client::get_ticket_number ( get_ticket_number_callback_type result_callback) -> bool
overridevirtual

Requests a new batch of ticket numbers from the remote ticket machine.

Always returns a single ticket number (range size of 1). Caches ticket numbers to avoid making an RPC request per call. If a ticket number is available in the cache, calls the callback before returning.

Parameters
result_callbackfunction to call with the new ticket number.
Returns
true if the request was initiated successfully.

Implements cbdc::parsec::ticket_machine::interface.

Definition at line 20 of file parsec/ticket_machine/client.cpp.

◆ init()

auto cbdc::parsec::ticket_machine::rpc::client::init ( ) -> bool

Initializes the underlying TCP client.

Returns
true if the client initialized successfully.

Definition at line 15 of file parsec/ticket_machine/client.cpp.

◆ operator=() [1/2]

auto cbdc::parsec::ticket_machine::rpc::client::operator= ( client && ) -> client &=delete
delete

◆ operator=() [2/2]

auto cbdc::parsec::ticket_machine::rpc::client::operator= ( const client & ) -> client &=delete
delete

The documentation for this class was generated from the following files: