LLDB mainline
source/Plugins/Protocol/MCP/Resource.h
Go to the documentation of this file.
1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLDB_PLUGINS_PROTOCOL_MCP_RESOURCE_H
10#define LLDB_PLUGINS_PROTOCOL_MCP_RESOURCE_H
11
14#include "lldb/lldb-forward.h"
15#include "lldb/lldb-types.h"
16#include "llvm/ADT/StringRef.h"
17#include "llvm/Support/Error.h"
18#include <cstddef>
19#include <vector>
20
21namespace lldb_private::mcp {
22
24public:
25 using ResourceProvider::ResourceProvider;
26 virtual ~DebuggerResourceProvider() = default;
27
28 std::vector<lldb_protocol::mcp::Resource> GetResources() const override;
29 llvm::Expected<lldb_protocol::mcp::ReadResourceResult>
30 ReadResource(llvm::StringRef uri) const override;
31
32private:
34 static lldb_protocol::mcp::Resource GetTargetResource(size_t target_idx,
35 Target &target);
36
37 static llvm::Expected<lldb_protocol::mcp::ReadResourceResult>
38 ReadDebuggerResource(llvm::StringRef uri, lldb::user_id_t debugger_id);
39 static llvm::Expected<lldb_protocol::mcp::ReadResourceResult>
40 ReadTargetResource(llvm::StringRef uri, lldb::user_id_t debugger_id,
41 size_t target_idx);
42};
43
44} // namespace lldb_private::mcp
45
46#endif
A class to manage flag bits.
Definition Debugger.h:80
llvm::Expected< lldb_protocol::mcp::ReadResourceResult > ReadResource(llvm::StringRef uri) const override
Definition Resource.cpp:127
static llvm::Expected< lldb_protocol::mcp::ReadResourceResult > ReadTargetResource(llvm::StringRef uri, lldb::user_id_t debugger_id, size_t target_idx)
Definition Resource.cpp:186
static lldb_protocol::mcp::Resource GetDebuggerResource(Debugger &debugger)
Definition Resource.cpp:69
static lldb_protocol::mcp::Resource GetTargetResource(size_t target_idx, Target &target)
Definition Resource.cpp:83
static llvm::Expected< lldb_protocol::mcp::ReadResourceResult > ReadDebuggerResource(llvm::StringRef uri, lldb::user_id_t debugger_id)
Definition Resource.cpp:164
std::vector< lldb_protocol::mcp::Resource > GetResources() const override
Definition Resource.cpp:103
uint64_t user_id_t
Definition lldb-types.h:82
A known resource that the server is capable of reading.
Definition Protocol.h:108