blob: 2133d1e8bfb51e42cef58993178abf25310df596 [file] [log] [blame]
#pragma once
#include "callback.hpp"
#include <string>
namespace phosphor
{
namespace dbus
{
namespace monitoring
{
/**
* @class ResolveCallout
* @brief Resolves error logs with the associated callout
*
* Resolves a log by setting its Resolved property
* to true.
*/
class ResolveCallout : public Callback
{
public:
ResolveCallout() = delete;
~ResolveCallout() = default;
ResolveCallout(const ResolveCallout&) = delete;
ResolveCallout& operator=(const ResolveCallout&) = delete;
ResolveCallout(ResolveCallout&&) = default;
ResolveCallout& operator=(ResolveCallout&&) = default;
/**
* @brief constructor
*
* @param[in] callout - The callout whose errors need to be resolved.
* Normally an inventory path.
*/
explicit ResolveCallout(const std::string& callout) : callout(callout) {}
/**
* @brief Callback interface to resolve errors
*
* Resolves all error log entries that are associated
* with the callout.
*/
void operator()(Context ctx) override;
private:
/**
* @brief Resolves a single error log entry
*
* param[in] entry - the object path of the error log entry
*/
void resolve(const std::string& entry);
/**
* @brief The object path of the callout, typically an inventory path
*/
std::string callout;
};
} // namespace monitoring
} // namespace dbus
} // namespace phosphor