Add lampTest class for LED

- Add the framework of the lamp test class.

- For the lamp test path in led group, Initiate lamp test when the
  Asserted property is true, Stop the lamp test when the Asserted
  property is false or the timer expires.

Tested:
- stat lamp test:
  busctl set-property xyz.openbmc_project.LED.GroupManager
  /xyz/openbmc_project/led/groups/lamp_test
  xyz.openbmc_project.Led.Group  Asserted b true

- stop lamp test:
  busctl set-property xyz.openbmc_project.LED.GroupManager
  /xyz/openbmc_project/led/groups/lamp_test
  xyz.openbmc_project.Led.Group  Asserted b false

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I7e6fe0ffc4679288ab90050742d2680051e61905
diff --git a/group.hpp b/group.hpp
index 7bf97c6..bb21fb6 100644
--- a/group.hpp
+++ b/group.hpp
@@ -31,18 +31,21 @@
 
     /** @brief Constructs LED Group
      *
-     * @param[in] bus     - Handle to system dbus
-     * @param[in] objPath - The D-Bus path that hosts LED group
-     * @param[in] manager - Reference to Manager
+     * @param[in] bus       - Handle to system dbus
+     * @param[in] objPath   - The D-Bus path that hosts LED group
+     * @param[in] manager   - Reference to Manager
      * @param[in] serialize - Serialize object
+     * @param[in] callBack  - Custom callback when LED group is asserted
      */
     Group(sdbusplus::bus::bus& bus, const std::string& objPath,
-          Manager& manager, Serialize& serialize) :
+          Manager& manager, Serialize& serialize,
+          std::function<void(bool)> callBack = nullptr) :
 
         sdbusplus::server::object::object<
             sdbusplus::xyz::openbmc_project::Led::server::Group>(
             bus, objPath.c_str(), true),
-        path(objPath), manager(manager), serialize(serialize)
+        path(objPath), manager(manager), serialize(serialize),
+        customCallBack(callBack)
     {
         // Initialize Asserted property value
         if (serialize.getGroupSavedState(objPath))
@@ -70,6 +73,10 @@
 
     /** @brief The serialize class for storing and restoring groups of LEDs */
     Serialize& serialize;
+
+    /** @brief Custom callback when LED group is asserted
+     */
+    std::function<void(bool)> customCallBack;
 };
 
 } // namespace led