xref: /openbmc/bios-bmc-smm-error-logger/include/rde/notifier_dbus_handler.hpp (revision 951742566fa7174f1d99fc7f33e6c942272d12de)
17cea1b96Skasunath #pragma once
27cea1b96Skasunath 
37cea1b96Skasunath #include "dbus/file_notifier.hpp"
47cea1b96Skasunath 
5*3d0cd556Skasunath #include <sdbusplus/asio/object_server.hpp>
6*3d0cd556Skasunath 
77cea1b96Skasunath #include <memory>
87cea1b96Skasunath #include <vector>
97cea1b96Skasunath 
107cea1b96Skasunath namespace bios_bmc_smm_error_logger
117cea1b96Skasunath {
127cea1b96Skasunath namespace rde
137cea1b96Skasunath {
147cea1b96Skasunath 
157cea1b96Skasunath /**
167cea1b96Skasunath  * @brief A class to handle CPER DBus notification objects.
177cea1b96Skasunath  */
187cea1b96Skasunath class CperFileNotifierHandler
197cea1b96Skasunath {
207cea1b96Skasunath   public:
217cea1b96Skasunath     /**
227cea1b96Skasunath      * @brief Constructor for the CperFileNotifierHandler class.
237cea1b96Skasunath      *
24*3d0cd556Skasunath      * @param conn - sdbusplus asio connection.
257cea1b96Skasunath      */
26*3d0cd556Skasunath     explicit CperFileNotifierHandler(
27*3d0cd556Skasunath         const std::shared_ptr<sdbusplus::asio::connection>& conn);
287cea1b96Skasunath 
297cea1b96Skasunath     /**
307cea1b96Skasunath      * @brief Create a DBus object with the provided filePath value.
317cea1b96Skasunath      *
327cea1b96Skasunath      * @param filePath - file path of the CPER log JSON file.
337cea1b96Skasunath      */
347cea1b96Skasunath     void createEntry(const std::string& filePath);
357cea1b96Skasunath 
367cea1b96Skasunath   private:
37bea36e22SPatrick Williams     sdbusplus::server::manager_t objManager;
38*3d0cd556Skasunath     sdbusplus::asio::object_server objServer;
397cea1b96Skasunath 
407cea1b96Skasunath     /**
417cea1b96Skasunath      * @brief DBus index of the next entry.
427cea1b96Skasunath      */
437cea1b96Skasunath     uint64_t nextEntry = 0;
447cea1b96Skasunath };
457cea1b96Skasunath 
467cea1b96Skasunath } // namespace rde
477cea1b96Skasunath } // namespace bios_bmc_smm_error_logger
48