cmDebuggerVariablesManager.h 916 B

1234567891011121314151617181920212223242526272829303132333435
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #pragma once
  4. #include "cmConfigure.h" // IWYU pragma: keep
  5. #include <cstdint>
  6. #include <functional>
  7. #include <unordered_map>
  8. #include <cm3p/cppdap/protocol.h>
  9. #include <cm3p/cppdap/types.h>
  10. namespace cmDebugger {
  11. class cmDebuggerVariablesManager
  12. {
  13. std::unordered_map<
  14. int64_t,
  15. std::function<dap::array<dap::Variable>(dap::VariablesRequest const&)>>
  16. VariablesHandlers;
  17. void RegisterHandler(
  18. int64_t id,
  19. std::function<dap::array<dap::Variable>(dap::VariablesRequest const&)>
  20. handler);
  21. void UnregisterHandler(int64_t id);
  22. friend class cmDebuggerVariables;
  23. public:
  24. cmDebuggerVariablesManager() = default;
  25. dap::array<dap::Variable> HandleVariablesRequest(
  26. dap::VariablesRequest const& request);
  27. };
  28. } // namespace cmDebugger