OpenCBDC Transaction Processor
Loading...
Searching...
No Matches
cbdc::raft::rpc::server Class Reference

Generic RPC server for raft nodes for which the replicated state machine handles the request processing logic. More...

#include <rpc_server.hpp>

Inheritance diagram for cbdc::raft::rpc::server:
Collaboration diagram for cbdc::raft::rpc::server:

Public Member Functions

void register_raft_node (std::shared_ptr< node > impl)
 Registers the raft node whose state machine handles RPC requests for this server.
 
- Public Member Functions inherited from cbdc::rpc::async_server< Request, Response, InBuffer, OutBuffer >
 async_server ()=default
 
 async_server (async_server &&) noexcept=default
 
auto operator= (async_server &&) noexcept -> async_server &=default
 
 async_server (const async_server &)=default
 
auto operator= (const async_server &) -> async_server &=default
 
 ~async_server () override=default
 
void register_handler_callback (callback_type callback)
 Register a request handler callback function for processing requests, generating responses, and passing those responses to a response callback.
 
- Public Member Functions inherited from cbdc::rpc::server< Request, Response, buffer, 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::async_server< Request, Response, InBuffer, OutBuffer >
using response_callback_type = std::function<void(std::optional<Response>)>
 Response callback function type.
 
using callback_type = std::function<bool(Request, response_callback_type)>
 Request handler callback function.
 
- Public Types inherited from cbdc::rpc::server< Request, Response, buffer, buffer >
using request_type
 
using response_type
 
- Static Public Attributes inherited from cbdc::rpc::async_server< Request, Response, InBuffer, OutBuffer >
static constexpr handler_type handler = handler_type::async
 
- Protected Member Functions inherited from cbdc::rpc::async_server< Request, Response, InBuffer, OutBuffer >
auto async_call (InBuffer request_buf, std::function< void(cbdc::buffer)> response_callback) -> std::optional< OutBuffer >
 Deserializes an RPC request, then calls the registered request handler function.
 
- Protected Member Functions inherited from cbdc::rpc::server< Request, Response, buffer, 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) -> 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

Generic RPC server for raft nodes for which the replicated state machine handles the request processing logic.

Replicates requests to the cluster which executes them via its state machine. Once state machine execution completes, the raft node returns the result via a callback function.

Definition at line 18 of file rpc_server.hpp.

Member Function Documentation

◆ register_raft_node()

void cbdc::raft::rpc::server::register_raft_node ( std::shared_ptr< node > impl)
inline

Registers the raft node whose state machine handles RPC requests for this server.

Parameters
implpointer to the raft node.
See also
cbdc::rpc::server

Definition at line 24 of file rpc_server.hpp.

References cbdc::rpc::async_server< Request, Response, InBuffer, OutBuffer >::register_handler_callback().

Here is the call graph for this function:

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