Skip to content

Commit dd2d994

Browse files
leoparenteclaude
andcommitted
fix: resolve corrade API compatibility issues found during local build verification
- Use Corrade::InPlaceInit (not Containers::InPlaceInit, which is deprecated) - Wrap StringView returns with std::string() for spdlog/fmt logging and map keys - Add PointerStl.h for Pointer<T> → unique_ptr<T> implicit conversion - Add Macros.h + AbstractManager.h to static_plugins.h for CORRADE_AUTOMATIC_INITIALIZER - Add StringStl.h + std::string() wraps in main.cpp for pluginList() logging - Use _s literal suffix in pluginInterface() to set Global StringViewFlag (required by new corrade at runtime) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent fcd624b commit dd2d994

9 files changed

Lines changed: 21 additions & 11 deletions

File tree

cmd/pktvisord/main.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#pragma GCC diagnostic push
1818
#pragma GCC diagnostic ignored "-Wattributes"
1919
#endif
20+
#include <Corrade/Containers/StringStl.h>
2021
#include <Corrade/Utility/ConfigurationGroup.h>
2122
#ifdef __GNUC__
2223
#pragma GCC diagnostic pop
@@ -652,13 +653,13 @@ int main(int argc, char *argv[])
652653
for (auto &p : registry.input_plugin_registry()->pluginList()) {
653654
auto meta = registry.input_plugin_registry()->metadata(p);
654655
if (meta && meta->data().hasValue("type") && meta->data().value("type") == "input") {
655-
logger->info("input: {}", p);
656+
logger->info("input: {}", std::string(p));
656657
}
657658
}
658659
for (auto &p : registry.handler_plugin_registry()->pluginList()) {
659660
auto meta = registry.handler_plugin_registry()->metadata(p);
660661
if (meta && meta->data().hasValue("type") && meta->data().value("type") == "handler") {
661-
logger->info("handler: {}", p);
662+
logger->info("handler: {}", std::string(p));
662663
}
663664
}
664665
exit(EXIT_SUCCESS);

src/AbstractPlugin.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ void AbstractPlugin::check_schema(json obj, SchemaMap &required, SchemaMap &opti
1212
{
1313
for (const auto &[key, value] : required) {
1414
if (!obj.contains(key)) {
15-
throw SchemaException(fmt::format("{}: required field is missing: {}", plugin(), key));
15+
throw SchemaException(fmt::format("{}: required field is missing: {}", std::string(plugin()), key));
1616
}
1717
if (!std::regex_match(obj[key].get<std::string>(), std::regex(value))) {
18-
throw SchemaException(fmt::format("{}: required field fails input validation: {} requires {}", plugin(), key, value));
18+
throw SchemaException(fmt::format("{}: required field fails input validation: {} requires {}", std::string(plugin()), key, value));
1919
}
2020
}
2121
for (const auto &[key, value] : optional) {
2222
if (obj.contains(key) && !std::regex_match(obj[key].get<std::string>(), std::regex(value))) {
23-
throw SchemaException(fmt::format("{}: optional field fails input validation: {} requires {}", plugin(), key, value));
23+
throw SchemaException(fmt::format("{}: optional field fails input validation: {} requires {}", std::string(plugin()), key, value));
2424
}
2525
}
2626
}

src/AbstractPlugin.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class AbstractPlugin : public Corrade::PluginManager::AbstractPlugin
7373
public:
7474
static Corrade::Containers::Array<Corrade::Containers::String> pluginSearchPaths()
7575
{
76-
return {Corrade::Containers::InPlaceInit, {""}};
76+
return {Corrade::InPlaceInit, {""}};
7777
}
7878

7979
explicit AbstractPlugin(Corrade::PluginManager::AbstractManager &manager, const Corrade::Containers::StringView plugin)

src/CoreRegistry.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "InputStreamManager.h"
99
#include "Policies.h"
1010
#include "Taps.h"
11+
#include <Corrade/Containers/PointerStl.h>
1112
#include <Corrade/Containers/StringStl.h>
1213
#include <Corrade/Utility/ConfigurationGroup.h>
1314
#include <spdlog/sinks/stdout_color_sinks.h>

src/HandlerModulePlugin.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,13 @@ class HandlerModulePlugin : public AbstractPlugin
2525

2626
static Corrade::Containers::StringView pluginInterface()
2727
{
28-
return "visor.module.handler/1.0";
28+
using namespace Corrade::Containers::Literals;
29+
return "visor.module.handler/1.0"_s;
2930
}
3031

3132
static Corrade::Containers::Array<Corrade::Containers::String> pluginSearchPaths()
3233
{
33-
return {Corrade::Containers::InPlaceInit, {""}};
34+
return {Corrade::InPlaceInit, {""}};
3435
}
3536

3637
explicit HandlerModulePlugin(Corrade::PluginManager::AbstractManager &manager, const Corrade::Containers::StringView plugin)

src/InputModulePlugin.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@ class InputModulePlugin : public AbstractPlugin
2222
public:
2323
static Corrade::Containers::StringView pluginInterface()
2424
{
25-
return "visor.module.input/1.0";
25+
using namespace Corrade::Containers::Literals;
26+
return "visor.module.input/1.0"_s;
2627
}
2728

2829
static Corrade::Containers::Array<Corrade::Containers::String> pluginSearchPaths()
2930
{
30-
return {Corrade::Containers::InPlaceInit, {""}};
31+
return {Corrade::InPlaceInit, {""}};
3132
}
3233

3334
explicit InputModulePlugin(Corrade::PluginManager::AbstractManager &manager, const Corrade::Containers::StringView plugin)

src/Policies.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ std::vector<Policy *> PolicyManager::load(const YAML::Node &policy_yaml, bool si
8989
policy_ptr->add_tap(tap);
9090
// ensure tap input type matches policy input tap
9191
if (input_node["input_type"].as<std::string>() != tap->input_plugin()->plugin()) {
92-
throw PolicyException(fmt::format("input_type for policy specified tap '{}' doesn't match tap's defined input type: {}/{}", tap_name, input_node["input_type"].as<std::string>(), tap->input_plugin()->plugin()));
92+
throw PolicyException(fmt::format("input_type for policy specified tap '{}' doesn't match tap's defined input type: {}/{}", tap_name, input_node["input_type"].as<std::string>(), std::string(tap->input_plugin()->plugin())));
9393
}
9494
// handler internal config
9595
window_config.config_set<std::string>("_internal_tap_name", tap_name);

src/handlers/static_plugins.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#pragma once
22

3+
#include <Corrade/PluginManager/AbstractManager.h>
4+
#include <Corrade/Utility/Macros.h>
5+
36
static int import_handler_plugins()
47
{
58
CORRADE_PLUGIN_IMPORT(VisorHandlerNet);

src/inputs/static_plugins.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#pragma once
22

3+
#include <Corrade/PluginManager/AbstractManager.h>
4+
#include <Corrade/Utility/Macros.h>
5+
36
static int import_input_plugins()
47
{
58
CORRADE_PLUGIN_IMPORT(VisorInputMock);

0 commit comments

Comments
 (0)