xref: /openbmc/telemetry/src/interfaces/trigger_factory.hpp (revision 76833cb5ce1d3b55c060cd145812a7a4a7ac9c31)
1 #pragma once
2 
3 #include "interfaces/trigger.hpp"
4 #include "interfaces/trigger_manager.hpp"
5 #include "interfaces/trigger_types.hpp"
6 
7 #include <memory>
8 #include <utility>
9 
10 namespace interfaces
11 {
12 
13 class TriggerFactory
14 {
15   public:
16     virtual ~TriggerFactory() = default;
17 
18     virtual std::unique_ptr<interfaces::Trigger> make(
19         const std::string& name, bool isDiscrete, bool logToJournal,
20         bool logToRedfish, bool updateReport,
21         const std::vector<
22             std::pair<sdbusplus::message::object_path, std::string>>& sensors,
23         const std::vector<std::string>& reportNames,
24         const TriggerThresholdParams& thresholdParams,
25         interfaces::TriggerManager& triggerManager) const = 0;
26 };
27 
28 } // namespace interfaces
29