JSON-RPC 2.0
JSON-RPC 2.0 Modern C++ Library
|
Transport layer using Asio Unix domain sockets for JSON-RPC communication with framing. More...
#include <framed_pipe_transport.hpp>
Public Member Functions | |
FramedPipeTransport (const std::string &socket_path, bool is_server) | |
void | SendMessage (const std::string &message) override |
Sends a message in string to the transport layer. | |
auto | ReceiveMessage () -> std::string override |
Receives a message from the transport layer. | |
Public Member Functions inherited from jsonrpc::transport::PipeTransport | |
PipeTransport (const std::string &socket_path, bool is_server) | |
Constructs a PipeTransport. | |
~PipeTransport () override | |
PipeTransport (const PipeTransport &)=delete | |
auto | operator= (const PipeTransport &) -> PipeTransport &=delete |
PipeTransport (PipeTransport &&)=delete | |
auto | operator= (PipeTransport &&) -> PipeTransport &=delete |
void | SendMessage (const std::string &message) override |
Sends a message in string to the transport layer. | |
auto | ReceiveMessage () -> std::string override |
Receives a message from the transport layer. | |
Public Member Functions inherited from jsonrpc::transport::Transport | |
Transport ()=default | |
virtual | ~Transport ()=default |
Transport (const Transport &)=default | |
auto | operator= (const Transport &) -> Transport &=default |
Transport (Transport &&)=delete | |
auto | operator= (Transport &&) -> Transport &=delete |
Additional Inherited Members | |
Protected Member Functions inherited from jsonrpc::transport::PipeTransport | |
auto | GetSocket () -> asio::local::stream_protocol::socket & |
Static Protected Member Functions inherited from jsonrpc::transport::FramedTransport | |
static void | FrameMessage (std::ostream &output, const std::string &message) |
Constructs a framed message. | |
static auto | ReadHeadersFromStream (std::istream &input) -> HeaderMap |
static auto | ReadContentLengthFromStream (std::istream &input) -> int |
static auto | ReadContent (std::istream &input, std::size_t content_length) -> std::string |
Reads content from the input stream based on the content length. | |
static auto | ReceiveFramedMessage (std::istream &input) -> std::string |
Receives a framed message. | |
Static Protected Attributes inherited from jsonrpc::transport::FramedTransport | |
static constexpr const char * | kHeaderDelimiter = "\r\n\r\n" |
The delimiter used to separate headers from the message content. | |
Transport layer using Asio Unix domain sockets for JSON-RPC communication with framing.
Definition at line 16 of file framed_pipe_transport.hpp.
jsonrpc::transport::FramedPipeTransport::FramedPipeTransport | ( | const std::string & | socket_path, |
bool | is_server ) |
Definition at line 10 of file framed_pipe_transport.cpp.
|
overridevirtual |
Receives a message from the transport layer.
Implements jsonrpc::transport::Transport.
Definition at line 39 of file framed_pipe_transport.cpp.
|
overridevirtual |
Sends a message in string to the transport layer.
request | The JSON-RPC request as a string. |
Implements jsonrpc::transport::Transport.
Definition at line 17 of file framed_pipe_transport.cpp.
References jsonrpc::transport::FramedTransport::FrameMessage(), and jsonrpc::transport::PipeTransport::GetSocket().