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

Public Types | |
| using | request_type = request<Request> |
| using | response_type = response<Response> |
Public Member Functions | |
| server ()=default | |
| server (server &&) noexcept=default | |
| auto | operator= (server &&) noexcept -> server &=default |
| server (const server &)=default | |
| auto | operator= (const server &) -> server &=default |
| virtual | ~server ()=default |
Protected Member Functions | |
| template<typename BufType = InBuffer> | |
| auto | deserialize_request (BufType &request_buf) -> std::optional< request_type > |
| Deserializes a request from a buffer. | |
| template<typename R = Response> | |
| auto | serialize_response (header request_header, std::optional< R > response_payload) -> OutBuffer |
| 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 RPC server.
Handles serialization of requests and responses. Subclass to implement request handling functionality.
| 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 37 of file util/rpc/server.hpp.
| using cbdc::rpc::server< Request, Response, InBuffer, OutBuffer >::request_type = request<Request> |
Definition at line 47 of file util/rpc/server.hpp.
| using cbdc::rpc::server< Request, Response, InBuffer, OutBuffer >::response_type = response<Response> |
Definition at line 48 of file util/rpc/server.hpp.
|
default |
|
defaultnoexcept |
|
default |
|
virtualdefault |
|
inlineprotected |
Deserializes a request from a buffer.
| BufType | type of buffer to deserialize from. |
| request_buf | buffer to deserialize. |
Definition at line 57 of file util/rpc/server.hpp.
References cbdc::from_buffer().
Referenced by cbdc::rpc::blocking_server< Request, Response, InBuffer, OutBuffer >::blocking_call().

|
inlineprotected |
Serialize a failure response buffer from the given request buffer.
| request_buf | buffer containing a failed RPC request. |
Definition at line 80 of file util/rpc/server.hpp.
References cbdc::from_buffer(), and cbdc::rpc::server< Request, Response, InBuffer, OutBuffer >::serialize_response().

|
default |
|
defaultnoexcept |
|
inlineprotected |
Serialize a response into a buffer.
| type | of response payload. Defaults to Response. |
| request_header | header from the corresponding request. |
| response_payload | payload to include in the response, or std::nullopt if the request failed. |
Definition at line 69 of file util/rpc/server.hpp.
References cbdc::make_buffer().
Referenced by cbdc::rpc::blocking_server< Request, Response, InBuffer, OutBuffer >::blocking_call(), and cbdc::rpc::server< Request, Response, InBuffer, OutBuffer >::make_failure_response().
