1 #include <algorithm> 2 #include "conditions.hpp" 3 #include "sdbusplus.hpp" 4 5 namespace phosphor 6 { 7 namespace fan 8 { 9 namespace monitor 10 { 11 namespace condition 12 { 13 14 Condition propertiesMatch(std::vector<PropertyState>&& propStates) 15 { 16 return [pStates = std::move(propStates)](sdbusplus::bus::bus& bus) 17 { 18 return std::all_of( 19 pStates.begin(), 20 pStates.end(), 21 [&bus](const auto& p) 22 { 23 return util::SDBusPlus::getPropertyVariant<PropertyValue>( 24 bus, 25 std::get<propObj>(p.first), 26 std::get<propIface>(p.first), 27 std::get<propName>(p.first)) == p.second; 28 }); 29 }; 30 } 31 32 } // namespace condition 33 } // namespace monitor 34 } // namespace fan 35 } // namespace phosphor 36