1 #pragma once 2 3 #include "dbus/file_notifier.hpp" 4 5 #include <memory> 6 #include <vector> 7 8 namespace bios_bmc_smm_error_logger 9 { 10 namespace rde 11 { 12 13 /** 14 * @brief A class to handle CPER DBus notification objects. 15 */ 16 class CperFileNotifierHandler 17 { 18 public: 19 /** 20 * @brief Constructor for the CperFileNotifierHandler class. 21 * 22 * @param bus - bus to attache to. 23 */ 24 explicit CperFileNotifierHandler(sdbusplus::bus_t& bus); 25 26 /** 27 * @brief Create a DBus object with the provided filePath value. 28 * 29 * @param filePath - file path of the CPER log JSON file. 30 */ 31 void createEntry(const std::string& filePath); 32 33 private: 34 sdbusplus::bus_t& bus; 35 sdbusplus::server::manager_t objManager; 36 37 /** 38 * @brief A vector to keep track of DBus FilePath objects. 39 */ 40 std::vector<std::unique_ptr<CperFileNotifier>> notifierObjs; 41 42 /** 43 * @brief DBus index of the next entry. 44 */ 45 uint64_t nextEntry = 0; 46 }; 47 48 } // namespace rde 49 } // namespace bios_bmc_smm_error_logger 50