LLDB mainline
lldb_private::transport::JSONRPCTransport< Proto > Class Template Reference

A transport class for JSON RPC. More...

#include <JSONTransport.h>

Inheritance diagram for lldb_private::transport::JSONRPCTransport< Proto >:
[legend]

Protected Member Functions

std::string Encode (const llvm::json::Value &message) override
llvm::Expected< std::vector< std::string > > Parse () override
Protected Member Functions inherited from lldb_private::transport::IOTransport< Proto >
llvm::Error Write (const llvm::json::Value &message)
Protected Member Functions inherited from lldb_private::transport::JSONTransport< Proto >
template<typename... Ts>
auto Logv (const char *Fmt, Ts &&...Vals)
virtual void Log (llvm::StringRef message)=0

Static Protected Attributes

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

Additional Inherited Members

Public Types inherited from lldb_private::transport::IOTransport< Proto >
using Message = typename JSONTransport<Proto>::Message
using MessageHandler = typename JSONTransport<Proto>::MessageHandler
Public Types inherited from lldb_private::transport::JSONTransport< Proto >
using Req = typename Proto::Req
using Resp = typename Proto::Resp
using Evt = typename Proto::Evt
using Message = std::variant<Req, Resp, Evt>
Public Member Functions inherited from lldb_private::transport::IOTransport< Proto >
 IOTransport (lldb::IOObjectSP in, lldb::IOObjectSP out)
llvm::Error Send (const typename Proto::Evt &evt) override
llvm::Error Send (const typename Proto::Req &req) override
llvm::Error Send (const typename Proto::Resp &resp) override
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.
Public Member Functions inherited from lldb_private::transport::JSONTransport< Proto >
virtual ~JSONTransport ()=default
virtual llvm::Error Send (const Evt &)=0
 Sends an event, a message that does not require a response.
virtual llvm::Error Send (const Req &)=0
 Sends a request, a message that expects a response.
virtual llvm::Error Send (const Resp &)=0
 Sends a response to a specific request.
Static Public Attributes inherited from lldb_private::transport::IOTransport< Proto >
static constexpr size_t kReadBufferSize = 1024
 Public for testing purposes, otherwise this should be an implementation detail.
Protected Attributes inherited from lldb_private::transport::IOTransport< Proto >
llvm::SmallString< kReadBufferSizem_buffer

Detailed Description

template<typename Proto>
class lldb_private::transport::JSONRPCTransport< Proto >

A transport class for JSON RPC.

Definition at line 352 of file JSONTransport.h.

Member Function Documentation

◆ Encode()

template<typename Proto>
std::string lldb_private::transport::JSONRPCTransport< Proto >::Encode ( const llvm::json::Value & message)
inlineoverrideprotectedvirtual

Implements lldb_private::transport::IOTransport< Proto >.

Definition at line 357 of file JSONTransport.h.

References kMessageSeparator.

◆ Parse()

template<typename Proto>
llvm::Expected< std::vector< std::string > > lldb_private::transport::JSONRPCTransport< Proto >::Parse ( )
inlineoverrideprotectedvirtual

Member Data Documentation

◆ kMessageSeparator

template<typename Proto>
llvm::StringLiteral lldb_private::transport::JSONRPCTransport< Proto >::kMessageSeparator = "\n"
staticconstexprprotected

Definition at line 377 of file JSONTransport.h.

Referenced by Encode(), and Parse().


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