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