Use generated bindings for Led Group manager

This extends generated sdbusplus interface and provides implementation for
handling LED group operations.

Change-Id: I9e6f83f2f801de24d33937bc651228b1c0ccdc37
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
diff --git a/led-main.cpp b/led-main.cpp
index 90bba1e..8a091eb 100644
--- a/led-main.cpp
+++ b/led-main.cpp
@@ -1,9 +1,38 @@
-#include "led-manager.hpp"
+#include <iostream>
+#include "manager.hpp"
+#include "group.hpp"
 #include "config.h"
 
 int main(void)
 {
-    phosphor::led::Group ledMgr(BUSNAME, OBJPATH, INTERFACE);
-    ledMgr.run();
+    /** @brief Group manager object */
+    phosphor::led::Manager manager;
+
+    /** @brief Dbus constructs used by LED Group manager */
+    sdbusplus::bus::bus bus = sdbusplus::bus::new_default();
+
+    /** @brief sd_bus object manager */
+    sdbusplus::server::manager::manager objManager(bus, OBJPATH);
+
+    /** @brief vector of led groups */
+    std::vector<std::unique_ptr<phosphor::led::Group>> groups;
+
+    /** Now create so many dbus objects as there are groups */
+    for (auto &grp: phosphor::led::Manager::ledMap)
+    {
+        groups.emplace_back(std::make_unique<phosphor::led::Group>(
+                    bus, grp.first, manager));
+    }
+
+    /** @brief Claim the bus */
+    bus.request_name(BUSNAME);
+
+    /** @brief Wait for client requests */
+    while(true)
+    {
+        /** @brief process dbus calls / signals discarding unhandled */
+        bus.process_discard();
+        bus.wait();
+    }
     return 0;
 }