OpenCBDC Transaction Processor
Loading...
Searching...
No Matches
cbdc::parsec::ticket_machine::interface Class Referenceabstract

Ticket machine interface. More...

#include <interface.hpp>

Inheritance diagram for cbdc::parsec::ticket_machine::interface:

Public Types

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.
 

Public Member Functions

virtual ~interface ()=default
 
 interface ()=default
 
 interface (const interface &)=delete
 
auto operator= (const interface &) -> interface &=delete
 
 interface (interface &&)=delete
 
auto operator= (interface &&) -> interface &=delete
 
virtual auto get_ticket_number (get_ticket_number_callback_type result_callback) -> bool=0
 Asynchronously returns a new range of ticket numbers.
 

Detailed Description

Ticket machine interface.

Returns batches of monotonically increasing ticket numbers for identifying and sequencing transactions in the case of a conflict.

Definition at line 22 of file parsec/ticket_machine/interface.hpp.

Member Typedef Documentation

◆ get_ticket_number_callback_type

Callback function type for asynchronously handling ticket number requests.

Definition at line 44 of file parsec/ticket_machine/interface.hpp.

◆ get_ticket_number_return_type

Return value from the ticket machine.

Either a ticket number range or error code.

Definition at line 41 of file parsec/ticket_machine/interface.hpp.

◆ ticket_number_range_type

Return value from the ticket machine in the success case.

An exclusive range of unique ticket numbers.

Definition at line 38 of file parsec/ticket_machine/interface.hpp.

Member Enumeration Documentation

◆ error_code

Error codes returned by the ticket machine.

Definition at line 33 of file parsec/ticket_machine/interface.hpp.

Constructor & Destructor Documentation

◆ ~interface()

virtual cbdc::parsec::ticket_machine::interface::~interface ( )
virtualdefault

◆ interface() [1/3]

cbdc::parsec::ticket_machine::interface::interface ( )
default

◆ interface() [2/3]

cbdc::parsec::ticket_machine::interface::interface ( const interface & )
delete

◆ interface() [3/3]

cbdc::parsec::ticket_machine::interface::interface ( interface && )
delete

Member Function Documentation

◆ get_ticket_number()

virtual auto cbdc::parsec::ticket_machine::interface::get_ticket_number ( get_ticket_number_callback_type result_callback) -> bool
pure virtual

Asynchronously returns a new range of ticket numbers.

Ticket numbers returned by this method must not repeat except in the case where all ticket numbers have been used, when ticket numbers will wrap around. ticket_number_type should be large enough to make this a very rare occurance.

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

Implemented in cbdc::parsec::ticket_machine::impl, and cbdc::parsec::ticket_machine::rpc::client.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

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