diff options
author | Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com> | 2016-11-30 14:20:53 +0530 |
---|---|---|
committer | Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com> | 2016-12-19 12:18:08 +0530 |
commit | 75b5510f573390e0725fd424b1799f1fdb3baa1a (patch) | |
tree | 58c4643682ace2334fa01a419d3f175b8bb79d85 /physical.hpp | |
parent | bda97eb107fc60544fb8cde0ec1ada1da2d66f73 (diff) | |
download | phosphor-led-sysfs-75b5510f573390e0725fd424b1799f1fdb3baa1a.tar.gz phosphor-led-sysfs-75b5510f573390e0725fd424b1799f1fdb3baa1a.zip |
Add overriding methods for the base interface definition
Defines the functions that override the default setter for
the led state property.
Change-Id: Ic3a8d43cc783003c43f53df8f7e90d7fc4d6715a
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
Diffstat (limited to 'physical.hpp')
-rw-r--r-- | physical.hpp | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/physical.hpp b/physical.hpp index f0b4048..0eac97b 100644 --- a/physical.hpp +++ b/physical.hpp @@ -20,10 +20,13 @@ class Physical : public sdbusplus::server::object::object< ~Physical() = default; Physical(const Physical&) = delete; Physical& operator=(const Physical&) = delete; - Physical(Physical&&) = delete; - Physical& operator=(Physical&&) = delete; + Physical(Physical&&) = default; + Physical& operator=(Physical&&) = default; - /** @brief Constructs LED object + /** @brief Constructs LED object. Argument 'true' says that we hold off + * from sending the signals since we need to do some house keeping and + * only when we finish that, we are considered active and can then + * broadcast the signal. * * @param[in] bus - system dbus handler * @param[in] objPath - The Dbus path that hosts physical LED @@ -35,18 +38,43 @@ class Physical : public sdbusplus::server::object::object< sdbusplus::server::object::object< sdbusplus::xyz::openbmc_project::Led::server::Physical>( - bus, objPath.c_str()), + bus, objPath.c_str(), true), path(ledPath) { - // Nothing to do here + // Suppose this is getting launched as part of BMC reboot, then we + // need to save what the micro-controller currently has. + setInitialState(); + + // We are now ready. + emit_object_added(); } + /** @brief Overloaded State Property Setter function + * + * @param[in] value - One of OFF / ON / BLINK + * @return - Success or exception thrown + */ + Action state(Action value) override; + private: /** @brief File system location where this LED is exposed * Typically /sys/class/leds/<Led-Name> */ std::string path; + + /** @brief Applies the user triggered action on the LED + * by writing to sysfs + * + * @return None + */ + void driveLED(void); + + /** @brief reads sysfs and then setsup the parameteres accordingly + * + * @return Status or exception thrown + */ + void setInitialState(void); }; } // namespace led -} // namespace phosphor +} |