6#ifndef OPENCBDC_TX_SRC_RPC_SERVER_H_
7#define OPENCBDC_TX_SRC_RPC_SERVER_H_
33 template<
typename Request,
35 typename InBuffer =
buffer,
36 typename OutBuffer =
buffer>
56 template<typename BufType = InBuffer>
68 template<
typename R = Response>
70 std::optional<R> response_payload)
73 {request_header, response_payload});
81 -> std::optional<cbdc::buffer> {
83 if(!hdr.has_value()) {
91 struct null_response_type {};
Buffer to store and retrieve byte data.
auto make_failure_response(cbdc::buffer &request_buf) -> std::optional< cbdc::buffer >
Serialize a failure response buffer from the given request buffer.
auto serialize_response(header request_header, std::optional< R > response_payload) -> OutBuffer
Serialize a response into a buffer.
auto deserialize_request(BufType &request_buf) -> std::optional< request_type >
Deserializes a request from a buffer.
server(server &&) noexcept=default
handler_type
Type to distinguish between servers that implement synchronous versus asynchronous request handling.
auto from_buffer(nuraft::buffer &buf) -> std::optional< T >
Deserialize object of given type from a nuraft::buffer.
@ buffer
A singular RLP value (byte array)
auto make_buffer(const T &obj) -> std::enable_if_t< std::is_same_v< B, nuraft::ptr< nuraft::buffer > >, nuraft::ptr< nuraft::buffer > >
Serialize object into nuraft::buffer using a cbdc::nuraft_serializer.