blob: 4446ba18d89dd1b1aa540ce9cdd5efb0c4410b49 [file] [log] [blame]
Sora Suc86cd042025-07-11 16:32:51 +08001#include "oem_meta.hpp"
2
3#include <libpldm/base.h>
4
Sora Su972381f2025-07-18 18:11:26 +08005#include <utility>
6
Sora Suc86cd042025-07-11 16:32:51 +08007namespace pldm::oem_meta
8{
9
Sora Subca95a52025-07-21 13:37:18 +080010OemMETA::OemMETA(const pldm::utils::DBusHandler* dbusHandler,
11 pldm::responder::Invoker& invoker,
Sora Su972381f2025-07-18 18:11:26 +080012 pldm::responder::platform::Handler* platformHandler)
Sora Suc86cd042025-07-11 16:32:51 +080013{
14 oemEventManager = std::make_unique<oem_meta::OemEventManager>();
15 registerOemEventHandler(platformHandler);
Sora Su972381f2025-07-18 18:11:26 +080016
17 auto fileIOHandler =
Sora Subca95a52025-07-21 13:37:18 +080018 std::make_unique<pldm::responder::oem_meta::FileIOHandler>(dbusHandler);
Sora Su972381f2025-07-18 18:11:26 +080019 registerOemHandler(invoker, std::move(fileIOHandler));
Sora Suc86cd042025-07-11 16:32:51 +080020}
21
22void OemMETA::registerOemEventHandler(
23 pldm::responder::platform::Handler* platformHandler)
24{
25 platformHandler->registerEventHandlers(
26 PLDM_OEM_EVENT_CLASS_0xFB,
27 {[this](const pldm_msg* request, size_t payloadLength,
28 uint8_t formatVersion, pldm_tid_t tid, size_t eventDataOffset) {
29 return this->oemEventManager->handleOemEvent(
30 request, payloadLength, formatVersion, tid, eventDataOffset);
31 }});
32}
33
Sora Su972381f2025-07-18 18:11:26 +080034void OemMETA::registerOemHandler(
35 pldm::responder::Invoker& invoker,
36 std::unique_ptr<pldm::responder::oem_meta::FileIOHandler> fileIOHandler)
37{
38 invoker.registerHandler(PLDM_OEM, std::move(fileIOHandler));
39}
40
Sora Suc86cd042025-07-11 16:32:51 +080041} // namespace pldm::oem_meta