blob: 661fa950231e2cf5b1c33b76bd0f58d9a2e8c6d7 [file] [log] [blame]
#include "oem_meta.hpp"
#include <libpldm/base.h>
#include <utility>
namespace pldm::oem_meta
{
OemMETA::OemMETA(pldm::responder::Invoker& invoker,
pldm::responder::platform::Handler* platformHandler)
{
oemEventManager = std::make_unique<oem_meta::OemEventManager>();
registerOemEventHandler(platformHandler);
auto fileIOHandler =
std::make_unique<pldm::responder::oem_meta::FileIOHandler>();
registerOemHandler(invoker, std::move(fileIOHandler));
}
void OemMETA::registerOemEventHandler(
pldm::responder::platform::Handler* platformHandler)
{
platformHandler->registerEventHandlers(
PLDM_OEM_EVENT_CLASS_0xFB,
{[this](const pldm_msg* request, size_t payloadLength,
uint8_t formatVersion, pldm_tid_t tid, size_t eventDataOffset) {
return this->oemEventManager->handleOemEvent(
request, payloadLength, formatVersion, tid, eventDataOffset);
}});
}
void OemMETA::registerOemHandler(
pldm::responder::Invoker& invoker,
std::unique_ptr<pldm::responder::oem_meta::FileIOHandler> fileIOHandler)
{
invoker.registerHandler(PLDM_OEM, std::move(fileIOHandler));
}
} // namespace pldm::oem_meta