|
OpenCBDC Transaction Processor
|
Generic synchronous RPC server. More...
#include <blocking_server.hpp>


Public Types | |
| using | callback_type = std::function<std::optional<Response>(Request)> |
| 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< Request, Response, buffer, buffer > | |
| using | request_type |
| using | response_type |
Public Member Functions | |
| blocking_server ()=default | |
| blocking_server (blocking_server &&) noexcept=default | |
| auto | operator= (blocking_server &&) noexcept -> blocking_server &=default |
| blocking_server (const 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< 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 |
Static Public Attributes | |
| static constexpr handler_type | handler = handler_type::blocking |
Protected Member Functions | |
| auto | blocking_call (InBuffer request_buf) -> std::optional< OutBuffer > |
| Synchronously deserializes an RPC request, calls the request handler function, then serializes and returns the response. | |
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. | |
Generic synchronous RPC server.
Handles serialization of requests and responses. Dispatches incoming requests to a handler callback for processing. Subclass to define specific remote communication logic.
| Request | type for requests. |
| Response | type for responses. |
| InBuffer | type of buffer for serialized requests, defaults to cbdc::buffer |
| OutBuffer | type of buffer for serialized responses, defaults to cbdc::buffer |
Definition at line 25 of file blocking_server.hpp.
| using cbdc::rpc::blocking_server< Request, Response, InBuffer, OutBuffer >::callback_type = std::function<std::optional<Response>(Request)> |
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.
Definition at line 42 of file blocking_server.hpp.
|
default |
|
defaultnoexcept |
|
default |
|
overridedefault |
|
inlineprotected |
Synchronously deserializes an RPC request, calls the request handler function, then serializes and returns the response.
| request_buf | buffer holding an RPC request. |
Definition at line 58 of file blocking_server.hpp.
References cbdc::rpc::server< Request, Response, InBuffer, OutBuffer >::deserialize_request(), and cbdc::rpc::server< Request, Response, InBuffer, OutBuffer >::serialize_response().

|
defaultnoexcept |
|
default |
|
inline |
Register a handler callback function for processing requests and returning responses.
| callback | function to register to process client requests and return responses. |
Definition at line 48 of file blocking_server.hpp.
|
staticconstexpr |
Definition at line 37 of file blocking_server.hpp.