LLDB mainline
|
#include <Server.h>
Public Types | |
using | NotificationHandler = std::function<void(const Notification &)> |
Public Member Functions | |
Server (std::string name, std::string version, MCPTransport &client, LogCallback log_callback={}, ClosedCallback closed_callback={}) | |
~Server ()=default | |
void | AddTool (std::unique_ptr< Tool > tool) |
void | AddResourceProvider (std::unique_ptr< ResourceProvider > resource_provider) |
void | AddNotificationHandler (llvm::StringRef method, NotificationHandler handler) |
Protected Types | |
using | RequestHandler |
Protected Member Functions | |
ServerCapabilities | GetCapabilities () |
void | AddRequestHandlers () |
void | AddRequestHandler (llvm::StringRef method, RequestHandler handler) |
llvm::Expected< std::optional< Message > > | HandleData (llvm::StringRef data) |
llvm::Expected< Response > | Handle (const Request &request) |
void | Handle (const Notification ¬ification) |
llvm::Expected< Response > | InitializeHandler (const Request &) |
llvm::Expected< Response > | ToolsListHandler (const Request &) |
llvm::Expected< Response > | ToolsCallHandler (const Request &) |
llvm::Expected< Response > | ResourcesListHandler (const Request &) |
llvm::Expected< Response > | ResourcesReadHandler (const Request &) |
void | Received (const Request &) override |
void | Received (const Response &) override |
void | Received (const Notification &) override |
void | OnError (llvm::Error) override |
void | OnClosed () override |
void | Log (llvm::StringRef) |
Private Types | |
using | ClosedCallback = llvm::unique_function<void()> |
Private Attributes | |
const std::string | m_name |
const std::string | m_version |
MCPTransport & | m_client |
LogCallback | m_log_callback |
ClosedCallback | m_closed_callback |
llvm::StringMap< std::unique_ptr< Tool > > | m_tools |
std::vector< std::unique_ptr< ResourceProvider > > | m_resource_providers |
llvm::StringMap< RequestHandler > | m_request_handlers |
llvm::StringMap< NotificationHandler > | m_notification_handlers |
|
private |
using lldb_protocol::mcp::Server::NotificationHandler = std::function<void(const Notification &)> |
|
protected |
Server::Server | ( | std::string | name, |
std::string | version, | ||
MCPTransport & | client, | ||
LogCallback | log_callback = {}, | ||
ClosedCallback | closed_callback = {} ) |
Definition at line 111 of file Server.cpp.
References AddRequestHandlers(), m_client, m_closed_callback, m_log_callback, m_name, and m_version.
|
default |
void Server::AddNotificationHandler | ( | llvm::StringRef | method, |
NotificationHandler | handler ) |
Definition at line 171 of file Server.cpp.
References m_notification_handlers.
Referenced by lldb_private::mcp::ProtocolServerMCP::Extend().
|
protected |
Definition at line 167 of file Server.cpp.
References m_request_handlers.
Referenced by AddRequestHandlers().
|
protected |
Definition at line 119 of file Server.cpp.
References AddRequestHandler(), InitializeHandler(), ResourcesListHandler(), ResourcesReadHandler(), ToolsCallHandler(), and ToolsListHandler().
Referenced by Server().
void Server::AddResourceProvider | ( | std::unique_ptr< ResourceProvider > | resource_provider | ) |
Definition at line 160 of file Server.cpp.
References m_resource_providers.
Referenced by lldb_private::mcp::ProtocolServerMCP::Extend().
void Server::AddTool | ( | std::unique_ptr< Tool > | tool | ) |
Definition at line 154 of file Server.cpp.
References m_tools.
Referenced by lldb_private::mcp::ProtocolServerMCP::Extend().
|
protected |
Definition at line 280 of file Server.cpp.
References lldb_protocol::mcp::ServerCapabilities::supportsResourcesList, and lldb_protocol::mcp::ServerCapabilities::supportsToolsList.
Referenced by InitializeHandler().
|
protected |
Definition at line 146 of file Server.cpp.
References m_notification_handlers, and lldb_protocol::mcp::Notification::method.
Definition at line 132 of file Server.cpp.
References lldb_protocol::mcp::Request::id, m_request_handlers, and lldb_protocol::mcp::Request::method.
Referenced by Received(), and Received().
|
protected |
Definition at line 176 of file Server.cpp.
References lldb_protocol::mcp::InitializeResult::capabilities, GetCapabilities(), lldb_protocol::mcp::kProtocolVersion, m_name, m_version, lldb_protocol::mcp::Implementation::name, lldb_protocol::mcp::InitializeResult::protocolVersion, lldb_protocol::mcp::Response::result, lldb_protocol::mcp::InitializeResult::serverInfo, and lldb_protocol::mcp::Implementation::version.
Referenced by AddRequestHandlers().
|
protected |
Definition at line 289 of file Server.cpp.
References m_log_callback.
Referenced by OnClosed(), OnError(), Received(), and Received().
|
overrideprotected |
Definition at line 330 of file Server.cpp.
References Log(), and m_closed_callback.
|
overrideprotected |
Definition at line 326 of file Server.cpp.
|
overrideprotected |
Definition at line 322 of file Server.cpp.
References Handle().
|
overrideprotected |
Definition at line 294 of file Server.cpp.
References error(), Handle(), lldb_protocol::mcp::Request::id, lldb_protocol::mcp::Response::id, Log(), m_client, and lldb_protocol::mcp::Response::result.
|
overrideprotected |
Definition at line 318 of file Server.cpp.
References Log().
Definition at line 230 of file Server.cpp.
References m_resource_providers, lldb_protocol::mcp::ListResourcesResult::resources, and lldb_protocol::mcp::Response::result.
Referenced by AddRequestHandlers().
Definition at line 244 of file Server.cpp.
References lldb_protocol::mcp::fromJSON(), lldb_protocol::mcp::MCPError::kResourceNotFound, m_resource_providers, lldb_protocol::mcp::Request::params, lldb_protocol::mcp::Response::result, and lldb_protocol::mcp::ReadResourceParams::uri.
Referenced by AddRequestHandlers().
Definition at line 199 of file Server.cpp.
References lldb_protocol::mcp::CallToolParams::arguments, lldb_protocol::mcp::fromJSON(), m_tools, lldb_protocol::mcp::CallToolParams::name, lldb_protocol::mcp::Request::params, lldb_protocol::mcp::Response::result, and lldb_protocol::mcp::toJSON().
Referenced by AddRequestHandlers().
Definition at line 187 of file Server.cpp.
References m_tools, lldb_protocol::mcp::Response::result, and lldb_protocol::mcp::ListToolsResult::tools.
Referenced by AddRequestHandlers().
|
private |
Definition at line 82 of file Server.h.
Referenced by Received(), and Server().
|
private |
Definition at line 84 of file Server.h.
Referenced by OnClosed(), and Server().
|
private |
|
private |
Definition at line 79 of file Server.h.
Referenced by InitializeHandler(), and Server().
|
private |
Definition at line 90 of file Server.h.
Referenced by AddNotificationHandler(), and Handle().
|
private |
Definition at line 89 of file Server.h.
Referenced by AddRequestHandler(), and Handle().
|
private |
Definition at line 87 of file Server.h.
Referenced by AddResourceProvider(), ResourcesListHandler(), and ResourcesReadHandler().
|
private |
Definition at line 86 of file Server.h.
Referenced by AddTool(), ToolsCallHandler(), and ToolsListHandler().
|
private |
Definition at line 80 of file Server.h.
Referenced by InitializeHandler(), and Server().