xref: /openbmc/pldm/oem/meta/oem_meta.hpp (revision bca95a5aa082281ffac81bdbaf6a22a0cff60405)
1 #pragma once
2 
3 #include "libpldmresponder/platform.hpp"
4 #include "oem/meta/event/oem_event_manager.hpp"
5 #include "oem/meta/libpldmresponder/file_io.hpp"
6 #include "pldmd/invoker.hpp"
7 
8 namespace pldm::oem_meta
9 {
10 
11 /**
12  * @class OemMETA
13  *
14  * @brief class for creating all the OEM META handlers. Only in case
15  *        of OEM_META this class object will be instantiated
16  */
17 
18 class OemMETA
19 {
20   public:
21     OemMETA() = delete;
22     OemMETA(const OemMETA&) = delete;
23     OemMETA& operator=(const OemMETA&) = delete;
24     OemMETA(OemMETA&&) = delete;
25     OemMETA& operator=(OemMETA&&) = delete;
26 
27   public:
28     /** @brief Constucts OemMETA object
29      *  @param[in] dBusIntf - D-Bus handler
30      *  @param[in] invoker - invoker handler
31      *  @param[in] platformHandler - platformHandler handler
32      */
33     explicit OemMETA(const pldm::utils::DBusHandler* dbusHandler,
34                      pldm::responder::Invoker& invoker,
35                      pldm::responder::platform::Handler* platformHandler);
36 
37   private:
38     void registerOemEventHandler(
39         pldm::responder::platform::Handler* platformHandler);
40 
41     void registerOemHandler(
42         pldm::responder::Invoker& invoker,
43         std::unique_ptr<pldm::responder::oem_meta::FileIOHandler>
44             fileIOHandler);
45 
46     std::unique_ptr<oem_meta::OemEventManager> oemEventManager{};
47 };
48 
49 } // namespace pldm::oem_meta
50