Minor event refactoring
Assert that all events will share the same filter interface by
moving event filters to event base class.
Remove virtual on destructors in classes with final.
Improve comments in a number of places.
Change-Id: Ia32c13fd0f3b9a5fa147a2198a285bce37c27cfb
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/manager.cpp b/manager.cpp
index 16ed30a..5562b95 100644
--- a/manager.cpp
+++ b/manager.cpp
@@ -42,7 +42,7 @@
auto& args = *static_cast<Manager::SigArg*>(data);
sd_bus_message_ref(m);
auto& mgr = *std::get<0>(args);
- mgr.signal(
+ mgr.handleEvent(
msg,
static_cast<const details::DbusSignal&>(
*std::get<1>(args)),
@@ -71,7 +71,8 @@
{
for (auto& group : _events)
{
- for (auto pEvent : std::get<0>(group))
+ for (auto pEvent : std::get<std::vector<details::EventBasePtr>>(
+ group))
{
if (pEvent->type !=
details::Event::Type::DBUS_SIGNAL)
@@ -97,7 +98,7 @@
// each signal event.
_matches.emplace_back(
_bus,
- std::get<0>(*dbusEvent),
+ dbusEvent->signature,
details::_signal,
_sigargs.back().get());
}
@@ -178,15 +179,14 @@
}
}
-void Manager::signal(
+void Manager::handleEvent(
sdbusplus::message::message& msg,
- const details::DbusSignal& event,
+ const details::Event& event,
const EventInfo& info)
{
- auto& filters = std::get<1>(event);
auto& actions = std::get<1>(info);
- for (auto& f : filters)
+ for (auto& f : event)
{
if (!(*f)(_bus, msg, *this))
{