LLDB mainline
lldb_private::JSONRPCTransport< Req, Resp, Evt > Class Template Reference

A transport class for JSON RPC. More...

#include <JSONTransport.h>

Inheritance diagram for lldb_private::JSONRPCTransport< Req, Resp, Evt >:
[legend]

Protected Member Functions

std::string Encode (const llvm::json::Value &message) override
llvm::Expected< std::vector< std::string > > Parse () override

Static Protected Attributes

static constexpr llvm::StringLiteral kMessageSeparator = "\n"

Additional Inherited Members

Public Types inherited from lldb_private::JSONTransport< Req, Resp, Evt >
using MessageHandler = typename Transport<Req, Resp, Evt>::MessageHandler
Public Types inherited from lldb_private::Transport< Req, Resp, Evt >
using Message = std::variant<Req, Resp, Evt>
using MessageHandlerSP = std::shared_ptr<MessageHandler>
Public Member Functions inherited from lldb_private::JSONTransport< Req, Resp, Evt >
 JSONTransport (lldb::IOObjectSP in, lldb::IOObjectSP out)
llvm::Error Send (const Evt &evt) override
 Sends an event, a message that does not require a response.
llvm::Error Send (const Req &req) override
 Sends a request, a message that expects a response.
llvm::Error Send (const Resp &resp) override
 Sends a response to a specific request.
llvm::Expected< MainLoop::ReadHandleUPRegisterMessageHandler (MainLoop &loop, MessageHandler &handler) override
 RegisterMessageHandler registers the Transport with the given MainLoop and handles any incoming messages using the given MessageHandler.
llvm::Error Write (const llvm::json::Value &message)
Public Member Functions inherited from lldb_private::Transport< Req, Resp, Evt >
virtual ~Transport ()=default
template<typename... Ts>
auto Logv (const char *Fmt, Ts &&...Vals)
virtual void Log (llvm::StringRef message)=0
Static Public Attributes inherited from lldb_private::JSONTransport< Req, Resp, Evt >
static constexpr size_t kReadBufferSize = 1024
 Public for testing purposes, otherwise this should be an implementation detail.
Protected Attributes inherited from lldb_private::JSONTransport< Req, Resp, Evt >
llvm::SmallString< kReadBufferSizem_buffer

Detailed Description

template<typename Req, typename Resp, typename Evt>
class lldb_private::JSONRPCTransport< Req, Resp, Evt >

A transport class for JSON RPC.

Definition at line 273 of file JSONTransport.h.

Member Function Documentation

◆ Encode()

template<typename Req, typename Resp, typename Evt>
std::string lldb_private::JSONRPCTransport< Req, Resp, Evt >::Encode ( const llvm::json::Value & message)
inlineoverrideprotectedvirtual

Implements lldb_private::JSONTransport< Req, Resp, Evt >.

Definition at line 278 of file JSONTransport.h.

References kMessageSeparator.

◆ Parse()

template<typename Req, typename Resp, typename Evt>
llvm::Expected< std::vector< std::string > > lldb_private::JSONRPCTransport< Req, Resp, Evt >::Parse ( )
inlineoverrideprotectedvirtual

Member Data Documentation

◆ kMessageSeparator

template<typename Req, typename Resp, typename Evt>
llvm::StringLiteral lldb_private::JSONRPCTransport< Req, Resp, Evt >::kMessageSeparator = "\n"
staticconstexprprotected

Definition at line 298 of file JSONTransport.h.

Referenced by Encode(), and Parse().


The documentation for this class was generated from the following file: