LLDB mainline
|
A transport class for JSON with a HTTP header. More...
#include <JSONTransport.h>
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. |
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::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::ReadHandleUP > | RegisterMessageHandler (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< kReadBufferSize > | m_buffer |
A transport class for JSON with a HTTP header.
Definition at line 206 of file JSONTransport.h.
|
inlineoverrideprotectedvirtual |
Encodes messages based on https://microsoft.github.io/debug-adapter-protocol/overview#base-protocol.
Implements lldb_private::JSONTransport< Req, Resp, Evt >.
Definition at line 213 of file JSONTransport.h.
References kEndOfHeader, kHeaderContentLength, kHeaderFieldSeparator, and lldb_private::OS.
|
inlineoverrideprotectedvirtual |
Parses messages based on https://microsoft.github.io/debug-adapter-protocol/overview#base-protocol.
Implements lldb_private::JSONTransport< Req, Resp, Evt >.
Definition at line 224 of file JSONTransport.h.
References kEndOfHeader, kHeaderContentLength, kHeaderFieldSeparator, kHeaderSeparator, lldb_private::Transport< Req, Resp, Evt >::Logv(), and lldb_private::JSONTransport< Req, Resp, Evt >::m_buffer.
|
staticconstexprprotected |
Definition at line 268 of file JSONTransport.h.
|
staticconstexprprotected |
Definition at line 265 of file JSONTransport.h.
|
staticconstexprprotected |
Definition at line 266 of file JSONTransport.h.
|
staticconstexprprotected |
Definition at line 267 of file JSONTransport.h.
Referenced by Parse().