| #pragma once | 
 |  | 
 | #include <sdbusplus/async.hpp> | 
 | #include <sdbusplus/message/native_types.hpp> | 
 |  | 
 | #include <functional> | 
 | #include <string> | 
 | #include <vector> | 
 |  | 
 | namespace entity_manager | 
 | { | 
 |  | 
 | class EntityManagerInterface | 
 | { | 
 |   public: | 
 |     using Callback_t = std::function<void( | 
 |         const sdbusplus::message::object_path&, const std::string&)>; | 
 |     using interface_list_t = std::vector<std::string>; | 
 |     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 |