xref: /openbmc/phosphor-dbus-monitor/src/resolve_errors.hpp (revision 56fd833d55f62962f7d4c7c8421006cab7b98409)
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