1*d53d60a4SPatrick Venture #pragma once
2*d53d60a4SPatrick Venture 
3*d53d60a4SPatrick Venture #include "status.hpp"
4*d53d60a4SPatrick Venture 
5*d53d60a4SPatrick Venture #include <memory>
6*d53d60a4SPatrick Venture 
7*d53d60a4SPatrick Venture namespace ipmi_flash
8*d53d60a4SPatrick Venture {
9*d53d60a4SPatrick Venture 
10*d53d60a4SPatrick Venture // This type will just return success upon trigger(), and even before calling
11*d53d60a4SPatrick Venture // trigger.
12*d53d60a4SPatrick Venture class SkipAction : public TriggerableActionInterface
13*d53d60a4SPatrick Venture {
14*d53d60a4SPatrick Venture   public:
15*d53d60a4SPatrick Venture     static std::unique_ptr<TriggerableActionInterface> CreateSkipAction();
16*d53d60a4SPatrick Venture 
17*d53d60a4SPatrick Venture     SkipAction() = default;
18*d53d60a4SPatrick Venture     ~SkipAction() = default;
19*d53d60a4SPatrick Venture 
20*d53d60a4SPatrick Venture     // Disallow copy and assign.
21*d53d60a4SPatrick Venture     SkipAction(const SkipAction&) = delete;
22*d53d60a4SPatrick Venture     SkipAction& operator=(const SkipAction&) = delete;
23*d53d60a4SPatrick Venture     SkipAction(SkipAction&&) = default;
24*d53d60a4SPatrick Venture     SkipAction& operator=(SkipAction&&) = default;
25*d53d60a4SPatrick Venture 
26*d53d60a4SPatrick Venture     bool trigger() override
27*d53d60a4SPatrick Venture     {
28*d53d60a4SPatrick Venture         return true;
29*d53d60a4SPatrick Venture     }
30*d53d60a4SPatrick Venture     void abort() override
31*d53d60a4SPatrick Venture     {
32*d53d60a4SPatrick Venture     }
33*d53d60a4SPatrick Venture     ActionStatus status() override
34*d53d60a4SPatrick Venture     {
35*d53d60a4SPatrick Venture         return ActionStatus::success;
36*d53d60a4SPatrick Venture     }
37*d53d60a4SPatrick Venture };
38*d53d60a4SPatrick Venture 
39*d53d60a4SPatrick Venture } // namespace ipmi_flash
40