| #pragma once |
| |
| #include "dbus/file_notifier.hpp" |
| |
| #include <memory> |
| #include <vector> |
| |
| namespace bios_bmc_smm_error_logger |
| { |
| namespace rde |
| { |
| |
| /** |
| * @brief A class to handle CPER DBus notification objects. |
| */ |
| class CperFileNotifierHandler |
| { |
| public: |
| /** |
| * @brief Constructor for the CperFileNotifierHandler class. |
| * |
| * @param bus - bus to attache to. |
| */ |
| explicit CperFileNotifierHandler(sdbusplus::bus_t& bus); |
| |
| /** |
| * @brief Create a DBus object with the provided filePath value. |
| * |
| * @param filePath - file path of the CPER log JSON file. |
| */ |
| void createEntry(const std::string& filePath); |
| |
| private: |
| sdbusplus::bus_t& bus; |
| sdbusplus::server::manager_t objManager; |
| |
| /** |
| * @brief A vector to keep track of DBus FilePath objects. |
| */ |
| std::vector<std::unique_ptr<CperFileNotifier>> notifierObjs; |
| |
| /** |
| * @brief DBus index of the next entry. |
| */ |
| uint64_t nextEntry = 0; |
| }; |
| |
| } // namespace rde |
| } // namespace bios_bmc_smm_error_logger |