diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2017-05-31 17:27:05 -0500 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2017-06-01 14:02:42 +0000 |
commit | 3eedbe446da22b1339616cd04f56b1da520a4fd9 (patch) | |
tree | 563a0c282f911255adbf513eee2cc1b20f4515ad | |
parent | 3c6f29a0d0c89186e5f8fe1dfb12f76a6e448b28 (diff) | |
download | phosphor-led-manager-3eedbe446da22b1339616cd04f56b1da520a4fd9.tar.gz phosphor-led-manager-3eedbe446da22b1339616cd04f56b1da520a4fd9.zip |
use new sdbusplus match constructors
Change-Id: Id833073b9e45fae24d6bd0e7f9310ef0ba8658de
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
-rw-r--r-- | fault-monitor/fru-fault-monitor.cpp | 46 | ||||
-rw-r--r-- | fault-monitor/fru-fault-monitor.hpp | 47 |
2 files changed, 39 insertions, 54 deletions
diff --git a/fault-monitor/fru-fault-monitor.cpp b/fault-monitor/fru-fault-monitor.cpp index e21727b..8bf27f2 100644 --- a/fault-monitor/fru-fault-monitor.cpp +++ b/fault-monitor/fru-fault-monitor.cpp @@ -117,22 +117,19 @@ void action(sdbusplus::bus::bus& bus, return; } -int Add::created(sd_bus_message* msg, - void* data, - sd_bus_error* retError) +void Add::created(sdbusplus::message::message& msg) { - auto m = sdbusplus::message::message(msg); - auto bus = m.get_bus(); + auto bus = msg.get_bus(); sdbusplus::message::object_path obPath; - m.read(obPath); + msg.read(obPath); std::string objectPath(std::move(obPath)); std::size_t found = objectPath.find(ELOG_ENTRY); if (found == std::string::npos) { //Not a new error entry skip - return 0; + return; } std::string service; @@ -143,12 +140,12 @@ int Add::created(sd_bus_message* msg, catch (MethodErr& e) { commit<MethodErr>(); - return 0; + return; } catch (ObjectNotFoundErr& e) { commit<ObjectNotFoundErr>(); - return 0; + return; } auto method = bus.new_method_call(service.c_str(), objectPath.c_str(), @@ -164,7 +161,7 @@ int Add::created(sd_bus_message* msg, report<AssociationRetrieveErr>( AssociationRetrieveError::ELOG_ENTRY_PATH( objectPath.c_str())); - return 0; + return; } sdbusplus::message::variant<AssociationList> assoc; @@ -175,7 +172,7 @@ int Add::created(sd_bus_message* msg, if (assocs.empty()) { //No associations skip - return 0; + return; } for (const auto& item : assocs) @@ -183,46 +180,43 @@ int Add::created(sd_bus_message* msg, if (std::get<1>(item).compare(CALLOUT_REV_ASSOCIATION) == 0) { action(bus, std::get<2>(item), true); - static_cast<Add*>(data)->removeWatches.emplace_back( - std::make_unique<Remove>(bus, std::get<2>(item))); + removeWatches.emplace_back( + std::make_unique<Remove>(bus, std::get<2>(item))); } } - return 0; + return; } -int Remove::removed(sd_bus_message* msg, - void* data, - sd_bus_error* retError) +void Remove::removed(sdbusplus::message::message& msg) { - auto m = sdbusplus::message::message(msg); - auto bus = m.get_bus(); + auto bus = msg.get_bus(); std::string assoc; - m.read(assoc); + msg.read(assoc); if (assoc.compare("org.openbmc.Association")) { //Skip if not about association - return 0; + return; } std::map<std::string, std::vector<std::string>> endPoints; - m.read(endPoints); + msg.read(endPoints); auto it = endPoints.find("endpoints"); if (it == endPoints.end()) { //No end points,skip - return 0; + return; } if (!((*it).second.empty())) { //Skip, end points are not empty - return 0; + return; } - action(bus, static_cast<Remove*>(data)->inventoryPath, false); - return 0; + action(bus, inventoryPath, false); + return; } }//namespace monitor diff --git a/fault-monitor/fru-fault-monitor.hpp b/fault-monitor/fru-fault-monitor.hpp index 8d5195d..b686560 100644 --- a/fault-monitor/fru-fault-monitor.hpp +++ b/fault-monitor/fru-fault-monitor.hpp @@ -47,31 +47,25 @@ class Add Add(sdbusplus::bus::bus& bus): matchCreated( bus, - "type='signal'," - "interface='org.freedesktop.DBus.ObjectManager'," - "member='InterfacesAdded'," - "path_namespace='/xyz/openbmc_project/logging'", - created, - this) + sdbusplus::bus::match::rules::interfacesAdded() + + sdbusplus::bus::match::rules::path_namespace( + "/xyz/openbmc_project/logging"), + std::bind(std::mem_fn(&Add::created), + this, std::placeholders::_1)) { //Do nothing } private: /** @brief sdbusplus signal match for fault created */ - sdbusplus::server::match::match matchCreated; + sdbusplus::bus::match_t matchCreated; std::vector<std::unique_ptr<Remove>> removeWatches; /** @brief Callback function for fru fault created * @param[in] msg - Data associated with subscribed signal - * @param[in] data - Pointer to this object instance - * @param[out] retError - Error returned - * @return zero on success and error code upon failure */ - static int created(sd_bus_message* msg, - void* data, - sd_bus_error* retError); + void created(sdbusplus::message::message& msg); }; /** @class Remove @@ -97,9 +91,9 @@ class Remove inventoryPath(path), matchRemoved( bus, - match(path).c_str(), - removed, - this) + match(path), + std::bind(std::mem_fn(&Remove::removed), + this, std::placeholders::_1)) { //Do nothing } @@ -110,29 +104,26 @@ class Remove std::string inventoryPath; /** @brief sdbusplus signal matches for fault removed */ - sdbusplus::server::match::match matchRemoved; + sdbusplus::bus::match_t matchRemoved; /** @brief Callback function for fru fault created * @param[in] msg - Data associated with subscribed signal - * @param[in] data - Pointer to this object instance - * @param[out] retError - Error returned - * @return zero on success and error code upon failure */ - static int removed(sd_bus_message* msg, - void* data, - sd_bus_error* retError); + void removed(sdbusplus::message::message& msg); /** @brief function to create fault remove match for a fru * @param[in] path - Inventory path of the faulty unit. */ std::string match(const std::string& path) { + namespace MatchRules = sdbusplus::bus::match::rules; + std::string matchStmt = - "type='signal'," - "interface='org.freedesktop.DBus.Properties'," - "member='PropertiesChanged'," - "path='" + path + - "/" + CALLOUT_REV_ASSOCIATION + "'"; + MatchRules::type::signal() + + MatchRules::interface("org.freedesktop.DBus.Properties") + + MatchRules::member("PropertiesChanged") + + MatchRules::path(path + "/" + CALLOUT_REV_ASSOCIATION); + return matchStmt; } }; |