From 2ab347a9a2e54868ff682b4e64c746a6522f4345 Mon Sep 17 00:00:00 2001 From: Andreas Heinrich Date: Fri, 14 Jun 2024 09:00:50 +0200 Subject: [PATCH] Add `ErrorStateMonitor` for global errors (#149) * add global_error_state_monitor Signed-off-by: Andreas Heinrich * bump version Signed-off-by: Andreas Heinrich --------- Signed-off-by: Andreas Heinrich --- ev-dev-tools/src/ev_cli/__init__.py | 2 +- .../src/ev_cli/templates/ld-ev.cpp.j2 | 25 +++++++++++++------ .../src/ev_cli/templates/ld-ev.hpp.j2 | 1 + 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/ev-dev-tools/src/ev_cli/__init__.py b/ev-dev-tools/src/ev_cli/__init__.py index 8d9bfa83..68536833 100644 --- a/ev-dev-tools/src/ev_cli/__init__.py +++ b/ev-dev-tools/src/ev_cli/__init__.py @@ -1,2 +1,2 @@ """EVerest command line utility.""" -__version__ = '0.1.0' +__version__ = '0.1.1' diff --git a/ev-dev-tools/src/ev_cli/templates/ld-ev.cpp.j2 b/ev-dev-tools/src/ev_cli/templates/ld-ev.cpp.j2 index a8b87206..d028c628 100644 --- a/ev-dev-tools/src/ev_cli/templates/ld-ev.cpp.j2 +++ b/ev-dev-tools/src/ev_cli/templates/ld-ev.cpp.j2 @@ -12,6 +12,10 @@ #include #include +{% if info.enable_global_errors %} +#include + +{% endif %} namespace module { // FIXME (aw): could this way of keeping static variables be changed somehow? @@ -26,6 +30,19 @@ static {{ impl.id }}::Conf {{ impl.id }}_config; static Conf module_conf; static ModuleInfo module_info; +{% if info.enable_global_errors %} +void subscribe_global_all_errors( + const Everest::error::ErrorCallback& callback, + const Everest::error::ErrorCallback& clear_callback +) { + adapter.get_global_error_manager()->subscribe_global_all_errors(callback, clear_callback); +} + +std::shared_ptr get_global_error_state_monitor() { + return adapter.get_global_error_state_monitor(); +} + +{% endif %} void LdEverest::init(ModuleConfigs module_configs, const ModuleInfo& mod_info) { EVLOG_debug << "init() called on module {{ info.name }}"; @@ -115,14 +132,6 @@ std::vector everest_register(const json& connections) { return adapter.registered_commands; } -{% if info.enable_global_errors %} -void subscribe_global_all_errors( - const Everest::error::ErrorCallback& callback, - const Everest::error::ErrorCallback& clear_callback -) { - adapter.subscribe_global_all_errors(callback, clear_callback); -} -{% endif %} } // namespace module int main(int argc, char* argv[]) { diff --git a/ev-dev-tools/src/ev_cli/templates/ld-ev.hpp.j2 b/ev-dev-tools/src/ev_cli/templates/ld-ev.hpp.j2 index fcb7e5b6..5402239d 100644 --- a/ev-dev-tools/src/ev_cli/templates/ld-ev.hpp.j2 +++ b/ev-dev-tools/src/ev_cli/templates/ld-ev.hpp.j2 @@ -27,6 +27,7 @@ void subscribe_global_all_errors( const Everest::error::ErrorCallback& callback, const Everest::error::ErrorCallback& clear_callback ); +std::shared_ptr get_global_error_state_monitor(); {% endif %} } // namespace module