blob: 661fa950231e2cf5b1c33b76bd0f58d9a2e8c6d7 [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 Su972381f2025-07-18 18:11:26 +080010OemMETA::OemMETA(pldm::responder::Invoker& invoker,
11 pldm::responder::platform::Handler* platformHandler)
Sora Suc86cd042025-07-11 16:32:51 +080012{
13 oemEventManager = std::make_unique<oem_meta::OemEventManager>();
14 registerOemEventHandler(platformHandler);
Sora Su972381f2025-07-18 18:11:26 +080015
16 auto fileIOHandler =
17 std::make_unique<pldm::responder::oem_meta::FileIOHandler>();
18 registerOemHandler(invoker, std::move(fileIOHandler));
Sora Suc86cd042025-07-11 16:32:51 +080019}
20
21void OemMETA::registerOemEventHandler(
22 pldm::responder::platform::Handler* platformHandler)
23{
24 platformHandler->registerEventHandlers(
25 PLDM_OEM_EVENT_CLASS_0xFB,
26 {[this](const pldm_msg* request, size_t payloadLength,
27 uint8_t formatVersion, pldm_tid_t tid, size_t eventDataOffset) {
28 return this->oemEventManager->handleOemEvent(
29 request, payloadLength, formatVersion, tid, eventDataOffset);
30 }});
31}
32
Sora Su972381f2025-07-18 18:11:26 +080033void OemMETA::registerOemHandler(
34 pldm::responder::Invoker& invoker,
35 std::unique_ptr<pldm::responder::oem_meta::FileIOHandler> fileIOHandler)
36{
37 invoker.registerHandler(PLDM_OEM, std::move(fileIOHandler));
38}
39
Sora Suc86cd042025-07-11 16:32:51 +080040} // namespace pldm::oem_meta