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/board.hpp b/host-bmc/dbus/board.hpp
new file mode 100644
index 0000000..a9cfde5
--- /dev/null
+++ b/host-bmc/dbus/board.hpp
@@ -0,0 +1,36 @@
+#pragma once
+
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server.hpp>
+#include <sdbusplus/server/object.hpp>
+#include <xyz/openbmc_project/Inventory/Item/Board/server.hpp>
+
+#include <string>
+
+namespace pldm
+{
+namespace dbus
+{
+using ItemBoard = sdbusplus::server::object_t<
+    sdbusplus::xyz::openbmc_project::Inventory::Item::server::Board>;
+
+class Board : public ItemBoard
+{
+  public:
+    Board() = delete;
+    ~Board() = default;
+    Board(const Board&) = delete;
+    Board& operator=(const Board&) = delete;
+    Board(Board&&) = delete;
+    Board& operator=(Board&&) = delete;
+
+    Board(sdbusplus::bus_t& bus, const std::string& objPath) :
+        ItemBoard(bus, objPath.c_str()), path(objPath)
+    {}
+
+  private:
+    std::string path;
+};
+
+} // namespace dbus
+} // namespace pldm