1 #pragma once 2 3 #include <string> 4 #include <sdbusplus/bus.hpp> 5 #include <sdbusplus/server/object.hpp> 6 #include "xyz/openbmc_project/Led/Physical/server.hpp" 7 namespace phosphor 8 { 9 namespace led 10 { 11 12 /** @class Physical 13 * @brief Responsible for applying actions on a particular physical LED 14 */ 15 class Physical : public sdbusplus::server::object::object< 16 sdbusplus::xyz::openbmc_project::Led::server::Physical> 17 { 18 public: 19 Physical() = delete; 20 ~Physical() = default; 21 Physical(const Physical&) = delete; 22 Physical& operator=(const Physical&) = delete; 23 Physical(Physical&&) = delete; 24 Physical& operator=(Physical&&) = delete; 25 26 /** @brief Constructs LED object 27 * 28 * @param[in] bus - system dbus handler 29 * @param[in] objPath - The Dbus path that hosts physical LED 30 * @param[in] ledPath - sysfs path where this LED is exported 31 */ 32 Physical(sdbusplus::bus::bus& bus, 33 const std::string& objPath, 34 const std::string& ledPath) : 35 36 sdbusplus::server::object::object< 37 sdbusplus::xyz::openbmc_project::Led::server::Physical>( 38 bus, objPath.c_str()), 39 path(ledPath) 40 { 41 // Nothing to do here 42 } 43 44 private: 45 /** @brief File system location where this LED is exposed 46 * Typically /sys/class/leds/<Led-Name> 47 */ 48 std::string path; 49 }; 50 51 } // namespace led 52 } // namespace phosphor 53