1 #include "oem_meta.hpp"
2
3 #include <libpldm/base.h>
4
5 #include <utility>
6
7 namespace pldm::oem_meta
8 {
9
OemMETA(const pldm::utils::DBusHandler * dbusHandler,pldm::responder::Invoker & invoker,pldm::responder::platform::Handler * platformHandler)10 OemMETA::OemMETA(const pldm::utils::DBusHandler* dbusHandler,
11 pldm::responder::Invoker& invoker,
12 pldm::responder::platform::Handler* platformHandler)
13 {
14 oemEventManager = std::make_unique<oem_meta::OemEventManager>();
15 registerOemEventHandler(platformHandler);
16
17 auto fileIOHandler =
18 std::make_unique<pldm::responder::oem_meta::FileIOHandler>(dbusHandler);
19 registerOemHandler(invoker, std::move(fileIOHandler));
20 }
21
registerOemEventHandler(pldm::responder::platform::Handler * platformHandler)22 void 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
registerOemHandler(pldm::responder::Invoker & invoker,std::unique_ptr<pldm::responder::oem_meta::FileIOHandler> fileIOHandler)34 void 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
41 } // namespace pldm::oem_meta
42