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