blob: c046f0c33e41dfc09435878da868888000a27ff4 [file] [log] [blame]
#include <algorithm>
#include "conditions.hpp"
#include "sdbusplus.hpp"
namespace phosphor
{
namespace fan
{
namespace monitor
{
namespace condition
{
Condition propertiesMatch(std::vector<PropertyState>&& propStates)
{
return [pStates = std::move(propStates)](sdbusplus::bus::bus& bus)
{
return std::all_of(
pStates.begin(),
pStates.end(),
[&bus](const auto& p)
{
return util::SDBusPlus::getPropertyVariant<PropertyValue>(
bus,
std::get<propObj>(p.first),
std::get<propIface>(p.first),
std::get<propName>(p.first)) == p.second;
});
};
}
} // namespace condition
} // namespace monitor
} // namespace fan
} // namespace phosphor