#pragma once #include #include #include #include #include namespace entity_manager { class EntityManagerInterface { public: using Callback_t = std::function; using interface_list_t = std::vector; static constexpr auto serviceName = "xyz.openbmc_project.EntityManager"; EntityManagerInterface() = delete; EntityManagerInterface(sdbusplus::async::context& ctx, const interface_list_t& interfaceNames, Callback_t addedCallback, Callback_t removedCallback); /** Get the inventory info from Entity Manager */ auto handleInventoryGet() -> sdbusplus::async::task<>; private: /** @brief Handle async inventory add from Entity Manager */ auto handleInventoryAdded() -> sdbusplus::async::task<>; /** @brief Handle async inventory remove from Entity Manager */ auto handleInventoryRemoved() -> sdbusplus::async::task<>; sdbusplus::async::context& ctx; interface_list_t interfaceNames; Callback_t addedCallback; Callback_t removedCallback; }; } // namespace entity_manager