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

A transport class for JSON with a HTTP header. More...

#include <JSONTransport.h>

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

Protected Member Functions

std::string Encode (const llvm::json::Value &message) override
 Encodes messages based on https://microsoft.github.io/debug-adapter-protocol/overview#base-protocol.
llvm::Expected< std::vector< std::string > > Parse () override
 Parses messages based on https://microsoft.github.io/debug-adapter-protocol/overview#base-protocol.
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 kHeaderContentLength = "Content-Length"
static constexpr llvm::StringLiteral kHeaderFieldSeparator = ":"
static constexpr llvm::StringLiteral kHeaderSeparator = "\r\n"
static constexpr llvm::StringLiteral kEndOfHeader = "\r\n\r\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::HTTPDelimitedJSONTransport< Proto >

A transport class for JSON with a HTTP header.

Definition at line 281 of file JSONTransport.h.

Member Function Documentation

◆ Encode()

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

◆ Parse()

Member Data Documentation

◆ kEndOfHeader

template<typename Proto>
llvm::StringLiteral lldb_private::transport::HTTPDelimitedJSONTransport< Proto >::kEndOfHeader = "\r\n\r\n"
staticconstexprprotected

Definition at line 343 of file JSONTransport.h.

Referenced by Encode(), and Parse().

◆ kHeaderContentLength

template<typename Proto>
llvm::StringLiteral lldb_private::transport::HTTPDelimitedJSONTransport< Proto >::kHeaderContentLength = "Content-Length"
staticconstexprprotected

Definition at line 340 of file JSONTransport.h.

Referenced by Encode(), and Parse().

◆ kHeaderFieldSeparator

template<typename Proto>
llvm::StringLiteral lldb_private::transport::HTTPDelimitedJSONTransport< Proto >::kHeaderFieldSeparator = ":"
staticconstexprprotected

Definition at line 341 of file JSONTransport.h.

Referenced by Encode(), and Parse().

◆ kHeaderSeparator

template<typename Proto>
llvm::StringLiteral lldb_private::transport::HTTPDelimitedJSONTransport< Proto >::kHeaderSeparator = "\r\n"
staticconstexprprotected

Definition at line 342 of file JSONTransport.h.

Referenced by Parse().


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