1e482087fSSora Su #pragma once 2e482087fSSora Su 3c86cd042SSora Su #include "libpldmresponder/platform.hpp" 4c86cd042SSora Su #include "oem/meta/event/oem_event_manager.hpp" 5972381fcSSora Su #include "oem/meta/libpldmresponder/file_io.hpp" 6972381fcSSora Su #include "pldmd/invoker.hpp" 7c86cd042SSora Su 8e482087fSSora Su namespace pldm::oem_meta 9e482087fSSora Su { 10e482087fSSora Su 11e482087fSSora Su /** 12e482087fSSora Su * @class OemMETA 13e482087fSSora Su * 14e482087fSSora Su * @brief class for creating all the OEM META handlers. Only in case 15e482087fSSora Su * of OEM_META this class object will be instantiated 16e482087fSSora Su */ 17e482087fSSora Su 18e482087fSSora Su class OemMETA 19e482087fSSora Su { 20e482087fSSora Su public: 21c86cd042SSora Su OemMETA() = delete; 22e482087fSSora Su OemMETA(const OemMETA&) = delete; 23e482087fSSora Su OemMETA& operator=(const OemMETA&) = delete; 24e482087fSSora Su OemMETA(OemMETA&&) = delete; 25e482087fSSora Su OemMETA& operator=(OemMETA&&) = delete; 26c86cd042SSora Su 27c86cd042SSora Su public: 28c86cd042SSora Su /** @brief Constucts OemMETA object 29*bca95a5aSSora Su * @param[in] dBusIntf - D-Bus handler 30972381fcSSora Su * @param[in] invoker - invoker handler 31c86cd042SSora Su * @param[in] platformHandler - platformHandler handler 32c86cd042SSora Su */ 33*bca95a5aSSora Su explicit OemMETA(const pldm::utils::DBusHandler* dbusHandler, 34*bca95a5aSSora Su pldm::responder::Invoker& invoker, 35972381fcSSora Su pldm::responder::platform::Handler* platformHandler); 36c86cd042SSora Su 37c86cd042SSora Su private: 38c86cd042SSora Su void registerOemEventHandler( 39c86cd042SSora Su pldm::responder::platform::Handler* platformHandler); 40c86cd042SSora Su 41972381fcSSora Su void registerOemHandler( 42972381fcSSora Su pldm::responder::Invoker& invoker, 43972381fcSSora Su std::unique_ptr<pldm::responder::oem_meta::FileIOHandler> 44972381fcSSora Su fileIOHandler); 45972381fcSSora Su 46c86cd042SSora Su std::unique_ptr<oem_meta::OemEventManager> oemEventManager{}; 47e482087fSSora Su }; 48e482087fSSora Su 49e482087fSSora Su } // namespace pldm::oem_meta 50