host-bmc: Implement Availability interface

Adding support to host Availability dbus interface. PLDM hosts this dbus
interface to provide the availability of the FRUs hosted by PLDM. The
Availability interface is defined at [1].

Tested:
   Functional test passed

[1]: https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/State/Decorator/Availability.interface.yaml

Change-Id: Ie5912b3683ce102a249c8b503ea9f455f0fbcabf
Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
diff --git a/host-bmc/dbus/custom_dbus.cpp b/host-bmc/dbus/custom_dbus.cpp
index f5dd592..f4581d8 100644
--- a/host-bmc/dbus/custom_dbus.cpp
+++ b/host-bmc/dbus/custom_dbus.cpp
@@ -166,5 +166,18 @@
     }
 }
 
+void CustomDBus::setAvailabilityState(const std::string& path,
+                                      const bool& state)
+{
+    if (!availabilityState.contains(path))
+    {
+        availabilityState.emplace(
+            path, std::make_unique<Availability>(
+                      pldm::utils::DBusHandler::getBus(), path.c_str()));
+    }
+
+    availabilityState.at(path)->available(state);
+}
+
 } // namespace dbus
 } // namespace pldm