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

NuRaft state machine implementation for a replicated ticket machine. More...

#include <state_machine.hpp>

Inheritance diagram for cbdc::parsec::ticket_machine::state_machine:
Collaboration diagram for cbdc::parsec::ticket_machine::state_machine:

Public Member Functions

 state_machine (std::shared_ptr< logging::log > logger, ticket_number_type batch_size)
 Constructor.
 
auto commit (uint64_t log_idx, nuraft::buffer &data) -> nuraft::ptr< nuraft::buffer > override
 Commit the given raft log entry at the given log index, and return the result.
 
auto apply_snapshot (nuraft::snapshot &) -> bool override
 Not implemented for ticket machine.
 
auto last_snapshot () -> nuraft::ptr< nuraft::snapshot > override
 Not implemented for ticket machine.
 
auto last_commit_index () -> uint64_t override
 Returns the most recently committed log entry index.
 
void create_snapshot (nuraft::snapshot &, nuraft::async_result< bool >::handler_type &) override
 Not implemented for ticket machine.
 
- Public Member Functions inherited from cbdc::rpc::blocking_server< rpc::request, rpc::response, nuraft::buffer &, nuraft::ptr< nuraft::buffer > >
 blocking_server ()=default
 
 blocking_server (blocking_server &&) noexcept=default
 
 blocking_server (const blocking_server &)=default
 
auto operator= (blocking_server &&) noexcept -> blocking_server &=default
 
auto operator= (const blocking_server &) -> blocking_server &=default
 
 ~blocking_server () override=default
 
void register_handler_callback (callback_type callback)
 Register a handler callback function for processing requests and returning responses.
 
- Public Member Functions inherited from cbdc::rpc::server< rpc::request, rpc::response, nuraft::buffer &, nuraft::ptr< nuraft::buffer > >
 server ()=default
 
 server (server &&) noexcept=default
 
 server (const server &)=default
 
auto operator= (server &&) noexcept -> server &=default
 
auto operator= (const server &) -> server &=default
 
virtual ~server ()=default
 

Additional Inherited Members

- Public Types inherited from cbdc::rpc::blocking_server< rpc::request, rpc::response, nuraft::buffer &, nuraft::ptr< nuraft::buffer > >
using callback_type
 Handler callback function type which accepts a request and returns a response, or returns std::nullopt if it encounters an error while processing the request.
 
- Public Types inherited from cbdc::rpc::server< rpc::request, rpc::response, nuraft::buffer &, nuraft::ptr< nuraft::buffer > >
using request_type
 
using response_type
 
- Static Public Attributes inherited from cbdc::rpc::blocking_server< rpc::request, rpc::response, nuraft::buffer &, nuraft::ptr< nuraft::buffer > >
static constexpr handler_type handler
 
- Protected Member Functions inherited from cbdc::rpc::blocking_server< rpc::request, rpc::response, nuraft::buffer &, nuraft::ptr< nuraft::buffer > >
auto blocking_call (nuraft::buffer &request_buf) -> std::optional< nuraft::ptr< nuraft::buffer > >
 Synchronously deserializes an RPC request, calls the request handler function, then serializes and returns the response.
 
- Protected Member Functions inherited from cbdc::rpc::server< rpc::request, rpc::response, nuraft::buffer &, nuraft::ptr< nuraft::buffer > >
auto deserialize_request (BufType &request_buf) -> std::optional< request_type >
 Deserializes a request from a buffer.
 
auto serialize_response (header request_header, std::optional< R > response_payload) -> nuraft::ptr< nuraft::buffer >
 Serialize a response into a buffer.
 
auto make_failure_response (cbdc::buffer &request_buf) -> std::optional< cbdc::buffer >
 Serialize a failure response buffer from the given request buffer.
 

Detailed Description

NuRaft state machine implementation for a replicated ticket machine.

Definition at line 18 of file parsec/ticket_machine/state_machine.hpp.

Constructor & Destructor Documentation

◆ state_machine()

cbdc::parsec::ticket_machine::state_machine::state_machine ( std::shared_ptr< logging::log > logger,
ticket_number_type batch_size )

Constructor.

Parameters
loggerlog instance.
batch_sizenumber of ticket numbers to return per request.

Definition at line 12 of file parsec/ticket_machine/state_machine.cpp.

References cbdc::rpc::blocking_server< rpc::request, rpc::response, nuraft::buffer &, nuraft::ptr< nuraft::buffer > >::register_handler_callback().

Here is the call graph for this function:

Member Function Documentation

◆ apply_snapshot()

auto cbdc::parsec::ticket_machine::state_machine::apply_snapshot ( nuraft::snapshot & ) -> bool
override

Not implemented for ticket machine.

Returns
false.

Definition at line 36 of file parsec/ticket_machine/state_machine.cpp.

◆ commit()

auto cbdc::parsec::ticket_machine::state_machine::commit ( uint64_t log_idx,
nuraft::buffer & data ) -> nuraft::ptr<nuraft::buffer>
override

Commit the given raft log entry at the given log index, and return the result.

Parameters
log_idxraft log index of the log entry.
dataserialized RPC request.
Returns
serialized RPC response or nullptr if there was an error processing the request.

Definition at line 21 of file parsec/ticket_machine/state_machine.cpp.

◆ create_snapshot()

void cbdc::parsec::ticket_machine::state_machine::create_snapshot ( nuraft::snapshot & ,
nuraft::async_result< bool >::handler_type & when_done )
override

Not implemented for ticket machine.

Definition at line 48 of file parsec/ticket_machine/state_machine.cpp.

◆ last_commit_index()

auto cbdc::parsec::ticket_machine::state_machine::last_commit_index ( ) -> uint64_t
override

Returns the most recently committed log entry index.

Returns
log entry index.

Definition at line 44 of file parsec/ticket_machine/state_machine.cpp.

◆ last_snapshot()

auto cbdc::parsec::ticket_machine::state_machine::last_snapshot ( ) -> nuraft::ptr<nuraft::snapshot>
override

Not implemented for ticket machine.

Returns
nullptr.

Definition at line 40 of file parsec/ticket_machine/state_machine.cpp.


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