#include "config.h" #include "group.hpp" #include "ledlayout.hpp" #include namespace phosphor { namespace led { /** @brief Overloaded Property Setter function */ bool Group::asserted(bool value) { // If the value is already what is before, return right away if (value == sdbusplus::xyz::openbmc_project::Led::server::Group::asserted()) { return value; } if (customCallBack != nullptr) { // Call the custom callback method customCallBack(this, value); return sdbusplus::xyz::openbmc_project::Led::server::Group::asserted( value); } // Introducing these to enable gtest. ActionSet ledsAssert{}; ActionSet ledsDeAssert{}; // Group management is handled by Manager. The populated leds* sets are not // really used by production code. They are there to enable gtest for // validation. auto result = manager.setGroupState(path, value, ledsAssert, ledsDeAssert); // Store asserted state serialize.storeGroups(path, result); // If something does not go right here, then there should be an sdbusplus // exception thrown. manager.driveLEDs(ledsAssert, ledsDeAssert); // Set the base class's asserted to 'true' since the getter // operation is handled there. return sdbusplus::xyz::openbmc_project::Led::server::Group::asserted( result); } } // namespace led } // namespace phosphor