9#ifndef LLDB_PLUGINS_PROTOCOL_MCP_PROTOCOLSERVERMCP_H
10#define LLDB_PLUGINS_PROTOCOL_MCP_PROTOCOLSERVERMCP_H
27 using TransportUP = std::unique_ptr<lldb_protocol::mcp::MCPTransport>;
28 using ServerUP = std::unique_ptr<lldb_protocol::mcp::Server>;
35 virtual llvm::Error
Stop()
override;
69 std::tuple<ServerUP, ReadHandleUP, TransportUP>>
std::unique_ptr< ReadHandle > ReadHandleUP
std::unique_ptr< Socket > m_listener
virtual void Extend(lldb_protocol::mcp::Server &server) const
std::thread m_loop_thread
virtual llvm::Error Start(ProtocolServer::Connection connection) override
Socket * GetSocket() const override
std::unique_ptr< lldb_protocol::mcp::Server > ServerUP
std::unique_ptr< lldb_protocol::mcp::MCPTransport > TransportUP
static lldb::ProtocolServerUP CreateInstance()
virtual llvm::Error Stop() override
llvm::StringRef GetPluginName() override
void AcceptCallback(std::unique_ptr< Socket > socket)
static llvm::StringRef GetPluginNameStatic()
MainLoopBase::ReadHandleUP ReadHandleUP
lldb_protocol::mcp::ServerInfoHandle m_server_info_handle
std::map< lldb_protocol::mcp::MCPTransport *, std::tuple< ServerUP, ReadHandleUP, TransportUP > > m_instances
static llvm::StringRef GetPluginDescriptionStatic()
virtual ~ProtocolServerMCP() override
lldb_private::MainLoop m_loop
std::vector< ReadHandleUP > m_listen_handlers
A handle that tracks the server info on disk and cleans up the disk record once it is no longer refer...
lldb_private::Transport< Request, Response, Notification > MCPTransport
Generic transport that uses the MCP protocol.
std::unique_ptr< lldb_private::ProtocolServer > ProtocolServerUP