From 631a1bc914b44e5cd405d687adc7c5315117fb78 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Thu, 23 Jan 2025 11:10:47 -0600 Subject: [PATCH] refactor event system --- repertory/librepertory/include/events/event_system2.hpp | 4 ++-- .../src/events/consumers/console_consumer.cpp | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/repertory/librepertory/include/events/event_system2.hpp b/repertory/librepertory/include/events/event_system2.hpp index 01e219d7..d8275aca 100644 --- a/repertory/librepertory/include/events/event_system2.hpp +++ b/repertory/librepertory/include/events/event_system2.hpp @@ -131,13 +131,13 @@ private: \ event_consumers2_.emplace_back(std::make_shared( \ #name, [this](const i_event &evt) { callback(evt); })) -#define E_SUBSCRIBE_EXACT2(name, callback) \ +#define E_SUBSCRIBE2_EXACT(name, callback) \ event_consumers2_.emplace_back(std::make_shared( \ #name, [this](const i_event &evt) { \ callback(dynamic_cast(evt)); \ })) -#define E_SUBSCRIBE_ALL2(callback) \ +#define E_SUBSCRIBE2_ALL(callback) \ event_consumers2_.emplace_back(std::make_shared( \ [this](const i_event &evt) { callback(evt); })) } // namespace repertory diff --git a/repertory/librepertory/src/events/consumers/console_consumer.cpp b/repertory/librepertory/src/events/consumers/console_consumer.cpp index 18389beb..0ce1bd44 100644 --- a/repertory/librepertory/src/events/consumers/console_consumer.cpp +++ b/repertory/librepertory/src/events/consumers/console_consumer.cpp @@ -68,9 +68,12 @@ console_consumer::console_consumer(event_level level) { [](auto &&evt) { set_level(evt.level); }); } -console_consumer::~console_consumer() { E_CONSUMER_RELEASE(); } +console_consumer::~console_consumer() { + E_CONSUMER_RELEASE(); + E_CONSUMER2_RELEASE(); +} -void console_consumer::process_event(const event &event) { +void console_consumer::process_event(const event &evt) { switch (evt.get_event_level()) { case event_level::critical: spdlog::get("console")->critical(evt.get_single_line()); @@ -94,7 +97,7 @@ void console_consumer::process_event(const event &event) { } } -void console_consumer::process_event(const i_event &evt) const { +void console_consumer::process_event2(const i_event &evt) { switch (evt.get_event_level()) { case event_level::critical: spdlog::get("console")->critical(evt.get_single_line());