1c86cd042SSora Su #include "oem_meta.hpp" 2c86cd042SSora Su 3c86cd042SSora Su #include <libpldm/base.h> 4c86cd042SSora Su 5972381fcSSora Su #include <utility> 6972381fcSSora Su 7c86cd042SSora Su namespace pldm::oem_meta 8c86cd042SSora Su { 9c86cd042SSora Su 10*bca95a5aSSora Su OemMETA::OemMETA(const pldm::utils::DBusHandler* dbusHandler, 11*bca95a5aSSora Su pldm::responder::Invoker& invoker, 12972381fcSSora Su pldm::responder::platform::Handler* platformHandler) 13c86cd042SSora Su { 14c86cd042SSora Su oemEventManager = std::make_unique<oem_meta::OemEventManager>(); 15c86cd042SSora Su registerOemEventHandler(platformHandler); 16972381fcSSora Su 17972381fcSSora Su auto fileIOHandler = 18*bca95a5aSSora Su std::make_unique<pldm::responder::oem_meta::FileIOHandler>(dbusHandler); 19972381fcSSora Su registerOemHandler(invoker, std::move(fileIOHandler)); 20c86cd042SSora Su } 21c86cd042SSora Su 22c86cd042SSora Su void OemMETA::registerOemEventHandler( 23c86cd042SSora Su pldm::responder::platform::Handler* platformHandler) 24c86cd042SSora Su { 25c86cd042SSora Su platformHandler->registerEventHandlers( 26c86cd042SSora Su PLDM_OEM_EVENT_CLASS_0xFB, 27c86cd042SSora Su {[this](const pldm_msg* request, size_t payloadLength, 28c86cd042SSora Su uint8_t formatVersion, pldm_tid_t tid, size_t eventDataOffset) { 29c86cd042SSora Su return this->oemEventManager->handleOemEvent( 30c86cd042SSora Su request, payloadLength, formatVersion, tid, eventDataOffset); 31c86cd042SSora Su }}); 32c86cd042SSora Su } 33c86cd042SSora Su 34972381fcSSora Su void OemMETA::registerOemHandler( 35972381fcSSora Su pldm::responder::Invoker& invoker, 36972381fcSSora Su std::unique_ptr<pldm::responder::oem_meta::FileIOHandler> fileIOHandler) 37972381fcSSora Su { 38972381fcSSora Su invoker.registerHandler(PLDM_OEM, std::move(fileIOHandler)); 39972381fcSSora Su } 40972381fcSSora Su 41c86cd042SSora Su } // namespace pldm::oem_meta 42