Use generated bindings for physical led controller

Extends the generated interface and provides skeleton implementation of led
controller.

Change-Id: I13485f39755213b8a7324e526d6335f3ee0a2b67
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
diff --git a/physical.hpp b/physical.hpp
new file mode 100644
index 0000000..f0b4048
--- /dev/null
+++ b/physical.hpp
@@ -0,0 +1,52 @@
+#pragma once
+
+#include <string>
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server/object.hpp>
+#include "xyz/openbmc_project/Led/Physical/server.hpp"
+namespace phosphor
+{
+namespace led
+{
+
+/** @class Physical
+ *  @brief Responsible for applying actions on a particular physical LED
+ */
+class Physical : public sdbusplus::server::object::object<
+    sdbusplus::xyz::openbmc_project::Led::server::Physical>
+{
+    public:
+        Physical() = delete;
+        ~Physical() = default;
+        Physical(const Physical&) = delete;
+        Physical& operator=(const Physical&) = delete;
+        Physical(Physical&&) = delete;
+        Physical& operator=(Physical&&) = delete;
+
+        /** @brief Constructs LED object
+         *
+         * @param[in] bus       - system dbus handler
+         * @param[in] objPath   - The Dbus path that hosts physical LED
+         * @param[in] ledPath   - sysfs path where this LED is exported
+         */
+        Physical(sdbusplus::bus::bus& bus,
+                const std::string& objPath,
+                const std::string& ledPath) :
+
+            sdbusplus::server::object::object<
+                sdbusplus::xyz::openbmc_project::Led::server::Physical>(
+                        bus, objPath.c_str()),
+            path(ledPath)
+        {
+                // Nothing to do here
+        }
+
+    private:
+        /** @brief File system location where this LED is exposed
+         *   Typically /sys/class/leds/<Led-Name>
+         */
+        std::string path;
+};
+
+} // namespace led
+} // namespace phosphor