LLDB mainline
lldb_protocol::mcp::Server Class Reference

#include <Server.h>

Inheritance diagram for lldb_protocol::mcp::Server:
[legend]

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< ResponseHandle (const Request &request)
void Handle (const Notification &notification)
llvm::Expected< ResponseInitializeHandler (const Request &)
llvm::Expected< ResponseToolsListHandler (const Request &)
llvm::Expected< ResponseToolsCallHandler (const Request &)
llvm::Expected< ResponseResourcesListHandler (const Request &)
llvm::Expected< ResponseResourcesReadHandler (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
MCPTransportm_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< RequestHandlerm_request_handlers
llvm::StringMap< NotificationHandlerm_notification_handlers

Detailed Description

Definition at line 31 of file Server.h.

Member Typedef Documentation

◆ ClosedCallback

using lldb_protocol::mcp::Server::ClosedCallback = llvm::unique_function<void()>
private

Definition at line 32 of file Server.h.

◆ NotificationHandler

using lldb_protocol::mcp::Server::NotificationHandler = std::function<void(const Notification &)>

Definition at line 39 of file Server.h.

◆ RequestHandler

Initial value:
std::function<llvm::Expected<Response>(const Request &)>
A request that expects a response.
Definition Protocol.h:34

Definition at line 49 of file Server.h.

Constructor & Destructor Documentation

◆ Server()

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.

◆ ~Server()

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

Member Function Documentation

◆ AddNotificationHandler()

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().

◆ AddRequestHandler()

void Server::AddRequestHandler ( llvm::StringRef method,
RequestHandler handler )
protected

Definition at line 167 of file Server.cpp.

References m_request_handlers.

Referenced by AddRequestHandlers().

◆ AddRequestHandlers()

void Server::AddRequestHandlers ( )
protected

◆ AddResourceProvider()

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().

◆ AddTool()

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().

◆ GetCapabilities()

◆ Handle() [1/2]

void Server::Handle ( const Notification & notification)
protected

◆ Handle() [2/2]

llvm::Expected< Response > Server::Handle ( const Request & request)
protected

◆ HandleData()

llvm::Expected< std::optional< Message > > lldb_protocol::mcp::Server::HandleData ( llvm::StringRef data)
protected

◆ InitializeHandler()

◆ Log()

void Server::Log ( llvm::StringRef message)
protected

Definition at line 289 of file Server.cpp.

References m_log_callback.

Referenced by OnClosed(), OnError(), Received(), and Received().

◆ OnClosed()

void Server::OnClosed ( )
overrideprotected

Definition at line 330 of file Server.cpp.

References Log(), and m_closed_callback.

◆ OnError()

void Server::OnError ( llvm::Error error)
overrideprotected

Definition at line 326 of file Server.cpp.

References error(), and Log().

◆ Received() [1/3]

void Server::Received ( const Notification & notification)
overrideprotected

Definition at line 322 of file Server.cpp.

References Handle().

◆ Received() [2/3]

void Server::Received ( const Request & request)
overrideprotected

◆ Received() [3/3]

void Server::Received ( const Response & response)
overrideprotected

Definition at line 318 of file Server.cpp.

References Log().

◆ ResourcesListHandler()

llvm::Expected< Response > Server::ResourcesListHandler ( const Request & request)
protected

◆ ResourcesReadHandler()

◆ ToolsCallHandler()

◆ ToolsListHandler()

llvm::Expected< Response > Server::ToolsListHandler ( const Request & request)
protected

Member Data Documentation

◆ m_client

MCPTransport& lldb_protocol::mcp::Server::m_client
private

Definition at line 82 of file Server.h.

Referenced by Received(), and Server().

◆ m_closed_callback

ClosedCallback lldb_protocol::mcp::Server::m_closed_callback
private

Definition at line 84 of file Server.h.

Referenced by OnClosed(), and Server().

◆ m_log_callback

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

Definition at line 83 of file Server.h.

Referenced by Log(), and Server().

◆ m_name

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

Definition at line 79 of file Server.h.

Referenced by InitializeHandler(), and Server().

◆ m_notification_handlers

llvm::StringMap<NotificationHandler> lldb_protocol::mcp::Server::m_notification_handlers
private

Definition at line 90 of file Server.h.

Referenced by AddNotificationHandler(), and Handle().

◆ m_request_handlers

llvm::StringMap<RequestHandler> lldb_protocol::mcp::Server::m_request_handlers
private

Definition at line 89 of file Server.h.

Referenced by AddRequestHandler(), and Handle().

◆ m_resource_providers

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

Definition at line 87 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 86 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 80 of file Server.h.

Referenced by InitializeHandler(), and Server().


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