| #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::bus& bus, const std::string& path, | |
| const std::map<std::string, PropertiesVariant>& prop, uint32_t id, | |
| Repository* repo) : | |
| PELEntryIface(bus, path.c_str(), prop), | |
| _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 |