xref: /openbmc/pldm/oem/meta/oem_meta.cpp (revision bca95a5aa082281ffac81bdbaf6a22a0cff60405)
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