blob: f0b4048ea5bb0ee394dfba05baeb306247415c15 [file] [log] [blame]
Vishwanatha Subbannabda97eb2016-11-30 12:21:25 +05301#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"
7namespace phosphor
8{
9namespace led
10{
11
12/** @class Physical
13 * @brief Responsible for applying actions on a particular physical LED
14 */
15class 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