host-bmc: Implement fabric adapter interface

Adding support to host fabric adapter dbus interface.  Based on the PDRs
received from remote PLDM terminus, PLDM hosts the dbus interface based
on the entity type.  The Fabric adapter 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/FabricAdapter.interface.yaml

Change-Id: I72a7e3198dbbf78521eeeb37b926562064f733b9
Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
diff --git a/host-bmc/dbus/fabric_adapter.hpp b/host-bmc/dbus/fabric_adapter.hpp
new file mode 100644
index 0000000..bc2e5c1
--- /dev/null
+++ b/host-bmc/dbus/fabric_adapter.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/FabricAdapter/server.hpp>
+
+#include <string>
+
+namespace pldm
+{
+namespace dbus
+{
+using ItemFabricAdapter = sdbusplus::server::object_t<
+    sdbusplus::xyz::openbmc_project::Inventory::Item::server::FabricAdapter>;
+
+class FabricAdapter : public ItemFabricAdapter
+{
+  public:
+    FabricAdapter() = delete;
+    ~FabricAdapter() = default;
+    FabricAdapter(const FabricAdapter&) = delete;
+    FabricAdapter& operator=(const FabricAdapter&) = delete;
+    FabricAdapter(FabricAdapter&&) = delete;
+    FabricAdapter& operator=(FabricAdapter&&) = delete;
+
+    FabricAdapter(sdbusplus::bus_t& bus, const std::string& objPath) :
+        ItemFabricAdapter(bus, objPath.c_str()), path(objPath)
+    {}
+
+  private:
+    std::string path;
+};
+
+} // namespace dbus
+} // namespace pldm