host-bmc: Implement Board interface

Adding support to host Board dbus interface.  Based on the PDRs received
from remote PLDM terminus, PLDM hosts the dbus interface based on the
entity type.  The Board interface is defined at [1].

Tested:
   Functional test passed

[1]: https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Inventory/Item/Board.interface.yaml

Change-Id: I672abd2972eb18a4b1a81155811a544927884627
Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
diff --git a/host-bmc/dbus/custom_dbus.hpp b/host-bmc/dbus/custom_dbus.hpp
index d8d9375..e83c955 100644
--- a/host-bmc/dbus/custom_dbus.hpp
+++ b/host-bmc/dbus/custom_dbus.hpp
@@ -2,6 +2,7 @@
 
 #include "asset.hpp"
 #include "availability.hpp"
+#include "board.hpp"
 #include "cable.hpp"
 #include "chassis.hpp"
 #include "common/utils.hpp"
@@ -178,6 +179,13 @@
      */
     void implementFabricAdapter(const std::string& path);
 
+    /** @brief Implement Board Interface
+     *
+     *  @param[in] path - The object path
+     *
+     */
+    void implementBoard(const std::string& path);
+
     /** @brief Implement Asset Interface
      *
      *  @param[in] path - The object path
@@ -225,6 +233,7 @@
     std::unordered_map<ObjectPath, std::unique_ptr<PCIeDevice>> pcieDevice;
     std::unordered_map<ObjectPath, std::unique_ptr<PCIeSlot>> pcieSlot;
     std::unordered_map<ObjectPath, std::unique_ptr<PowerSupply>> powersupply;
+    std::unordered_map<ObjectPath, std::unique_ptr<Board>> board;
     std::unordered_map<ObjectPath, std::unique_ptr<FabricAdapter>>
         fabricAdapter;
     std::unordered_map<ObjectPath, std::unique_ptr<Cable>> cable;