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().