OpenCBDC Transaction Processor
Loading...
Searching...
No Matches
util/rpc/format.hpp
Go to the documentation of this file.
1// Copyright (c) 2021 MIT Digital Currency Initiative,
2// Federal Reserve Bank of Boston
3// Distributed under the MIT software license, see the accompanying
4// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6#ifndef OPENCBDC_TX_SRC_RPC_FORMAT_H_
7#define OPENCBDC_TX_SRC_RPC_FORMAT_H_
8
9#include "messages.hpp"
11
12namespace cbdc {
13 auto operator<<(serializer& ser, const rpc::header& header) -> serializer&;
14 auto operator>>(serializer& deser, rpc::header& header) -> serializer&;
15
16 template<typename T>
17 auto operator<<(serializer& ser, const rpc::request<T>& req)
18 -> serializer& {
19 return ser << req.m_header << req.m_payload;
20 }
21
22 template<typename T>
24 return deser >> req.m_header >> req.m_payload;
25 }
26
27 template<typename T>
28 auto operator<<(serializer& ser, const rpc::response<T>& resp)
29 -> serializer& {
30 return ser << resp.m_header << resp.m_payload;
31 }
32
33 template<typename T>
35 return deser >> resp.m_header >> resp.m_payload;
36 }
37}
38
39#endif
Interface for serializing objects into and out of raw bytes representations.
auto operator>>(serializer &deser, parsec::agent::rpc::request &req) -> serializer &
auto operator<<(serializer &ser, const parsec::agent::rpc::request &req) -> serializer &
RPC request message.
RPC response message.