Files
BloomPatched/src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.cpp

30 lines
988 B
C++
Raw Normal View History

2021-04-04 21:04:12 +01:00
#include "SupportedFeaturesResponse.hpp"
namespace DebugServer::Gdb::ResponsePackets
{
2022-04-06 17:39:21 +01:00
SupportedFeaturesResponse::SupportedFeaturesResponse(
const std::set<std::pair<Feature, std::optional<std::string>>>& supportedFeatures
)
: supportedFeatures(supportedFeatures)
{
auto output = std::string("qSupported:");
static const auto gdbFeatureMapping = getGdbFeatureToNameMapping();
2021-04-04 21:04:12 +01:00
for (const auto& supportedFeature : this->supportedFeatures) {
2022-04-06 17:39:21 +01:00
const auto featureString = gdbFeatureMapping.valueAt(supportedFeature.first);
2021-04-04 21:04:12 +01:00
if (featureString.has_value()) {
if (supportedFeature.second.has_value()) {
output.append(featureString.value() + "=" + supportedFeature.second.value() + ";");
2021-04-04 21:04:12 +01:00
} else {
output.append(featureString.value() + "+;");
}
2021-04-04 21:04:12 +01:00
}
2021-04-04 21:04:12 +01:00
}
2022-04-06 17:39:21 +01:00
this->data = {output.begin(), output.end()};
}
2021-04-04 21:04:12 +01:00
}