#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 |