#pragma once #include "manager.hpp" namespace openpower { namespace pels { using PELEntryIface = sdbusplus::org::open_power::Logging::PEL::server::Entry; using PropertiesVariant = PELEntryIface::PropertiesVariant; class PELEntry : public PELEntryIface { public: PELEntry() = delete; PELEntry(const PELEntry&) = delete; PELEntry& operator=(const PELEntry&) = delete; PELEntry(PELEntry&&) = delete; PELEntry& operator=(PELEntry&&) = delete; virtual ~PELEntry() = default; /** @brief Constructor to put an object onto the bus at a dbus path. * @param[in] bus - Bus to attach to. * @param[in] path - Path to attach at. * @param[in] prop - Default property values to be set when this interface * is added to the bus. * @param[in] id - obmc id for this instance. * @param[in] repo - Repository pointer to lookup PEL to set appropriate * attributes. */ PELEntry(sdbusplus::bus_t& bus, const std::string& path, const std::map& prop, uint32_t id, Repository* repo) : PELEntryIface(bus, path.c_str(), prop, true), _obmcId(id), _repo(repo) {} /** @brief Update managementSystemAck flag. * @param[in] value - A true value says HMC acknowledged the PEL. * @returns New property value */ bool managementSystemAck(bool value) override; /** * @brief Returns OpenBMC event log ID associated with this interface. */ uint32_t getMyId(void) const { return _obmcId; } private: /** * @brief Corresponding OpenBMC event log id of this interface. */ uint32_t _obmcId; /** * @brief Repository pointer to look for updating PEL fields. */ Repository* _repo; }; } // namespace pels } // namespace openpower