| #pragma once | 
 | #include "ipmi_fru_info_area.hpp" | 
 |  | 
 | #include <sdbusplus/bus.hpp> | 
 | #include <string> | 
 |  | 
 | namespace ipmi | 
 | { | 
 | namespace fru | 
 | { | 
 | using FRUId = uint8_t; | 
 | using FRUAreaMap = std::map<FRUId, FruAreaData>; | 
 |  | 
 | static constexpr auto xyzPrefix = "/xyz/openbmc_project/"; | 
 | static constexpr auto invMgrInterface = "xyz.openbmc_project.Inventory.Manager"; | 
 | static constexpr auto invObjPath = "/xyz/openbmc_project/inventory"; | 
 | static constexpr auto propInterface = "org.freedesktop.DBus.Properties"; | 
 | static constexpr auto invItemInterface = "xyz.openbmc_project.Inventory.Item"; | 
 | static constexpr auto itemPresentProp = "Present"; | 
 |  | 
 | /** | 
 |  * @brief Get fru area data as per IPMI specification | 
 |  * | 
 |  * @param[in] fruNum FRU ID | 
 |  * | 
 |  * @return FRU area data as per IPMI specification | 
 |  */ | 
 | const FruAreaData& getFruAreaData(const FRUId& fruNum); | 
 |  | 
 | /** | 
 |  * @brief Register callback handler into DBUS for PropertyChange events | 
 |  * | 
 |  * @return negative value on failure | 
 |  */ | 
 | int registerCallbackHandler(); | 
 | } // namespace fru | 
 | } // namespace ipmi |