You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
982 B
41 lines
982 B
2 years ago
|
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
||
|
#pragma once
|
||
|
|
||
|
#include "cmConfigure.h" // IWYU pragma: keep
|
||
|
|
||
|
#include <cstdint>
|
||
|
#include <functional>
|
||
|
#include <unordered_map>
|
||
|
#include <vector>
|
||
|
|
||
|
#include <cm3p/cppdap/types.h> // IWYU pragma: keep
|
||
|
|
||
|
namespace dap {
|
||
|
struct Variable;
|
||
|
struct VariablesRequest;
|
||
|
}
|
||
|
|
||
|
namespace cmDebugger {
|
||
|
|
||
|
class cmDebuggerVariablesManager
|
||
|
{
|
||
|
std::unordered_map<
|
||
|
int64_t,
|
||
|
std::function<dap::array<dap::Variable>(dap::VariablesRequest const&)>>
|
||
|
VariablesHandlers;
|
||
|
void RegisterHandler(
|
||
|
int64_t id,
|
||
|
std::function<dap::array<dap::Variable>(dap::VariablesRequest const&)>
|
||
|
handler);
|
||
|
void UnregisterHandler(int64_t id);
|
||
|
friend class cmDebuggerVariables;
|
||
|
|
||
|
public:
|
||
|
cmDebuggerVariablesManager() = default;
|
||
|
dap::array<dap::Variable> HandleVariablesRequest(
|
||
|
dap::VariablesRequest const& request);
|
||
|
};
|
||
|
|
||
|
} // namespace cmDebugger
|