host-bmc: Implement Inventory Item interface
Adding support to host Inventory Item dbus interface. PLDM hosts the
dbus interface based on the entity type. The Inventory Item 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.interface.yaml
Change-Id: Ifed3cc01d825a69d64afcffd8447f7c8d9387913
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 e292462..e099712 100644
--- a/host-bmc/dbus/custom_dbus.hpp
+++ b/host-bmc/dbus/custom_dbus.hpp
@@ -9,6 +9,7 @@
#include "cpu_core.hpp"
#include "fabric_adapter.hpp"
#include "fan.hpp"
+#include "inventory_item.hpp"
#include "motherboard.hpp"
#include "pcie_device.hpp"
#include "pcie_slot.hpp"
@@ -190,11 +191,19 @@
*/
void setAvailabilityState(const std::string& path, const bool& state);
+ /** @brief Set the Inventory Item property
+ * @param[in] path - The object path
+ * @param[in] bool - the presence of fru
+ */
+ void updateItemPresentStatus(const std::string& path, bool isPresent);
+
private:
std::unordered_map<ObjectPath, std::unique_ptr<Asset>> asset;
std::unordered_map<ObjectPath, std::unique_ptr<Availability>>
availabilityState;
std::unordered_map<ObjectPath, std::unique_ptr<LocationIntf>> location;
+ std::unordered_map<ObjectPath, std::unique_ptr<InventoryItem>>
+ presentStatus;
std::unordered_map<ObjectPath, std::unique_ptr<CPUCore>> cpuCore;
std::unordered_map<ObjectPath, std::unique_ptr<ItemChassis>> chassis;
std::unordered_map<ObjectPath, std::unique_ptr<PCIeDevice>> pcieDevice;