LLDB mainline
lldb_protocol::mcp::Server Class Reference

#include <Server.h>

Classes

struct  Client

Public Member Functions

 Server (std::string name, std::string version, LogCallback log_callback={})
 ~Server ()=default
void AddTool (std::unique_ptr< Tool > tool)
void AddResourceProvider (std::unique_ptr< ResourceProvider > resource_provider)
llvm::Error Accept (lldb_private::MainLoop &, MCPTransportUP)

Protected Member Functions

MCPBinderUP Bind (MCPTransport &)
ServerCapabilities GetCapabilities ()
llvm::Expected< InitializeResultInitializeHandler (const InitializeParams &)
llvm::Expected< ListToolsResultToolsListHandler ()
llvm::Expected< CallToolResultToolsCallHandler (const CallToolParams &)
llvm::Expected< ListResourcesResultResourcesListHandler ()
llvm::Expected< ReadResourceResultResourcesReadHandler (const ReadResourceParams &)
template<typename... Ts>
auto Logv (const char *Fmt, Ts &&...Vals)
void Log (llvm::StringRef message)

Private Types

using MCPTransportUP = std::unique_ptr<lldb_protocol::mcp::MCPTransport>
using ReadHandleUP = lldb_private::MainLoop::ReadHandleUP

Private Attributes

const std::string m_name
const std::string m_version
LogCallback m_log_callback
std::map< MCPTransport *, Clientm_instances
llvm::StringMap< std::unique_ptr< Tool > > m_tools
std::vector< std::unique_ptr< ResourceProvider > > m_resource_providers

Detailed Description

Definition at line 30 of file Server.h.

Member Typedef Documentation

◆ MCPTransportUP

Definition at line 32 of file Server.h.

◆ ReadHandleUP

Constructor & Destructor Documentation

◆ Server()

Server::Server ( std::string name,
std::string version,
LogCallback log_callback = {} )

Definition at line 112 of file Server.cpp.

References m_log_callback, m_name, and m_version.

◆ ~Server()

lldb_protocol::mcp::Server::~Server ( )
default

Member Function Documentation

◆ Accept()

llvm::Error Server::Accept ( lldb_private::MainLoop & loop,
MCPTransportUP transport )

Definition at line 146 of file Server.cpp.

References Bind(), Logv(), and m_instances.

◆ AddResourceProvider()

void Server::AddResourceProvider ( std::unique_ptr< ResourceProvider > resource_provider)

Definition at line 122 of file Server.cpp.

References m_resource_providers.

Referenced by lldb_private::mcp::ProtocolServerMCP::Extend().

◆ AddTool()

void Server::AddTool ( std::unique_ptr< Tool > tool)

Definition at line 116 of file Server.cpp.

References m_tools.

Referenced by lldb_private::mcp::ProtocolServerMCP::Extend().

◆ Bind()

MCPBinderUP Server::Bind ( MCPTransport & transport)
protected

◆ GetCapabilities()

◆ InitializeHandler()

◆ Log()

void lldb_protocol::mcp::Server::Log ( llvm::StringRef message)
inlineprotected

Definition at line 62 of file Server.h.

References m_log_callback.

Referenced by Bind(), and Logv().

◆ Logv()

template<typename... Ts>
auto lldb_protocol::mcp::Server::Logv ( const char * Fmt,
Ts &&... Vals )
inlineprotected

Definition at line 59 of file Server.h.

References Log().

Referenced by Accept().

◆ ResourcesListHandler()

llvm::Expected< ListResourcesResult > Server::ResourcesListHandler ( )
protected

Definition at line 206 of file Server.cpp.

References m_resource_providers, and lldb_protocol::mcp::ListResourcesResult::resources.

Referenced by Bind().

◆ ResourcesReadHandler()

Expected< ReadResourceResult > Server::ResourcesReadHandler ( const ReadResourceParams & params)
protected

◆ ToolsCallHandler()

llvm::Expected< CallToolResult > Server::ToolsCallHandler ( const CallToolParams & params)
protected

◆ ToolsListHandler()

llvm::Expected< ListToolsResult > Server::ToolsListHandler ( )
protected

Definition at line 177 of file Server.cpp.

References m_tools, and lldb_protocol::mcp::ListToolsResult::tools.

Referenced by Bind().

Member Data Documentation

◆ m_instances

std::map<MCPTransport *, Client> lldb_protocol::mcp::Server::m_instances
private

Definition at line 77 of file Server.h.

Referenced by Accept().

◆ m_log_callback

LogCallback lldb_protocol::mcp::Server::m_log_callback
private

Definition at line 71 of file Server.h.

Referenced by Log(), and Server().

◆ m_name

const std::string lldb_protocol::mcp::Server::m_name
private

Definition at line 68 of file Server.h.

Referenced by InitializeHandler(), and Server().

◆ m_resource_providers

std::vector<std::unique_ptr<ResourceProvider> > lldb_protocol::mcp::Server::m_resource_providers
private

Definition at line 80 of file Server.h.

Referenced by AddResourceProvider(), ResourcesListHandler(), and ResourcesReadHandler().

◆ m_tools

llvm::StringMap<std::unique_ptr<Tool> > lldb_protocol::mcp::Server::m_tools
private

Definition at line 79 of file Server.h.

Referenced by AddTool(), ToolsCallHandler(), and ToolsListHandler().

◆ m_version

const std::string lldb_protocol::mcp::Server::m_version
private

Definition at line 69 of file Server.h.

Referenced by InitializeHandler(), and Server().


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