Refactor PropertiesChanged handler setup
Most sensor daemons had pretty much the same duplicated open-coded
pattern for setting up PropertiesChanged signal matches; introduce a
helper function to reduce the duplication and make things more readable.
Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
Change-Id: I803a21eea2f6d7fc71b50d54bb8fd57a104f3349
diff --git a/src/IntelCPUSensorMain.cpp b/src/IntelCPUSensorMain.cpp
index 7ca6bc1..ea144de 100644
--- a/src/IntelCPUSensorMain.cpp
+++ b/src/IntelCPUSensorMain.cpp
@@ -716,7 +716,6 @@
boost::container::flat_set<CPUConfig> cpuConfigs;
sdbusplus::asio::object_server objectServer(systemBus);
- std::vector<std::unique_ptr<sdbusplus::bus::match_t>> matches;
boost::asio::deadline_timer pingTimer(io);
boost::asio::deadline_timer creationTimer(io);
boost::asio::deadline_timer filterTimer(io);
@@ -766,16 +765,8 @@
});
};
- for (const char* type : sensorTypes)
- {
- auto match = std::make_unique<sdbusplus::bus::match_t>(
- static_cast<sdbusplus::bus_t&>(*systemBus),
- "type='signal',member='PropertiesChanged',path_namespace='" +
- std::string(inventoryPath) + "',arg0namespace='" +
- configPrefix + type + "'",
- eventHandler);
- matches.emplace_back(std::move(match));
- }
+ std::vector<std::unique_ptr<sdbusplus::bus::match_t>> matches =
+ setupPropertiesChangedMatches(*systemBus, sensorTypes, eventHandler);
systemBus->request_name("xyz.openbmc_project.IntelCPUSensor");