Path: blob/main/contrib/llvm-project/lldb/source/Plugins/Protocol/MCP/Resource.h
213845 views
//===----------------------------------------------------------------------===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#ifndef LLDB_PLUGINS_PROTOCOL_MCP_RESOURCE_H9#define LLDB_PLUGINS_PROTOCOL_MCP_RESOURCE_H1011#include "Protocol.h"12#include "lldb/lldb-private.h"13#include <vector>1415namespace lldb_private::mcp {1617class ResourceProvider {18public:19ResourceProvider() = default;20virtual ~ResourceProvider() = default;2122virtual std::vector<protocol::Resource> GetResources() const = 0;23virtual llvm::Expected<protocol::ResourceResult>24ReadResource(llvm::StringRef uri) const = 0;25};2627class DebuggerResourceProvider : public ResourceProvider {28public:29using ResourceProvider::ResourceProvider;30virtual ~DebuggerResourceProvider() = default;3132virtual std::vector<protocol::Resource> GetResources() const override;33virtual llvm::Expected<protocol::ResourceResult>34ReadResource(llvm::StringRef uri) const override;3536private:37static protocol::Resource GetDebuggerResource(Debugger &debugger);38static protocol::Resource GetTargetResource(size_t target_idx,39Target &target);4041static llvm::Expected<protocol::ResourceResult>42ReadDebuggerResource(llvm::StringRef uri, lldb::user_id_t debugger_id);43static llvm::Expected<protocol::ResourceResult>44ReadTargetResource(llvm::StringRef uri, lldb::user_id_t debugger_id,45size_t target_idx);46};4748} // namespace lldb_private::mcp4950#endif515253