1*56fd833dSMatt Spinler #pragma once 2*56fd833dSMatt Spinler #include "callback.hpp" 3*56fd833dSMatt Spinler 4*56fd833dSMatt Spinler namespace phosphor 5*56fd833dSMatt Spinler { 6*56fd833dSMatt Spinler namespace dbus 7*56fd833dSMatt Spinler { 8*56fd833dSMatt Spinler namespace monitoring 9*56fd833dSMatt Spinler { 10*56fd833dSMatt Spinler 11*56fd833dSMatt Spinler /** 12*56fd833dSMatt Spinler * @class ResolveCallout 13*56fd833dSMatt Spinler * @brief Resolves error logs with the associated callout 14*56fd833dSMatt Spinler * 15*56fd833dSMatt Spinler * Resolves a log by setting its Resolved property 16*56fd833dSMatt Spinler * to true. 17*56fd833dSMatt Spinler */ 18*56fd833dSMatt Spinler class ResolveCallout : public Callback 19*56fd833dSMatt Spinler { 20*56fd833dSMatt Spinler public: 21*56fd833dSMatt Spinler 22*56fd833dSMatt Spinler ResolveCallout() = delete; 23*56fd833dSMatt Spinler ~ResolveCallout() = default; 24*56fd833dSMatt Spinler ResolveCallout(const ResolveCallout&) = delete; 25*56fd833dSMatt Spinler ResolveCallout& operator=(const ResolveCallout&) = delete; 26*56fd833dSMatt Spinler ResolveCallout(ResolveCallout&&) = default; 27*56fd833dSMatt Spinler ResolveCallout& operator=(ResolveCallout&&) = default; 28*56fd833dSMatt Spinler 29*56fd833dSMatt Spinler /** 30*56fd833dSMatt Spinler * @brief constructor 31*56fd833dSMatt Spinler * 32*56fd833dSMatt Spinler * @param[in] callout - The callout whose errors need to be resolved. 33*56fd833dSMatt Spinler * Normally an inventory path. 34*56fd833dSMatt Spinler */ 35*56fd833dSMatt Spinler explicit ResolveCallout(const std::string& callout) : 36*56fd833dSMatt Spinler callout(callout) {} 37*56fd833dSMatt Spinler 38*56fd833dSMatt Spinler /** 39*56fd833dSMatt Spinler * @brief Callback interface to resolve errors 40*56fd833dSMatt Spinler * 41*56fd833dSMatt Spinler * Resolves all error log entries that are associated 42*56fd833dSMatt Spinler * with the callout. 43*56fd833dSMatt Spinler */ 44*56fd833dSMatt Spinler void operator()() override; 45*56fd833dSMatt Spinler 46*56fd833dSMatt Spinler private: 47*56fd833dSMatt Spinler 48*56fd833dSMatt Spinler /** 49*56fd833dSMatt Spinler * @brief Resolves a single error log entry 50*56fd833dSMatt Spinler * 51*56fd833dSMatt Spinler * param[in] entry - the object path of the error log entry 52*56fd833dSMatt Spinler */ 53*56fd833dSMatt Spinler void resolve(const std::string& entry); 54*56fd833dSMatt Spinler 55*56fd833dSMatt Spinler /** 56*56fd833dSMatt Spinler * @brief The object path of the callout, typically an inventory path 57*56fd833dSMatt Spinler */ 58*56fd833dSMatt Spinler std::string callout; 59*56fd833dSMatt Spinler }; 60*56fd833dSMatt Spinler 61*56fd833dSMatt Spinler 62*56fd833dSMatt Spinler } // namespace monitoring 63*56fd833dSMatt Spinler } // namespace dbus 64*56fd833dSMatt Spinler } // namespace phosphor 65