#pragma once #include "interfaces/json_storage.hpp" #include "interfaces/trigger.hpp" #include "interfaces/trigger_manager.hpp" #include "interfaces/trigger_types.hpp" #include #include #include #include namespace interfaces { class TriggerFactory { public: virtual ~TriggerFactory() = default; virtual std::unique_ptr make( const std::string& name, bool isDiscrete, bool logToJournal, bool logToRedfish, bool updateReport, const std::vector& reportNames, interfaces::TriggerManager& triggerManager, interfaces::JsonStorage& triggerStorage, const LabeledTriggerThresholdParams& labeledThresholdParams, const std::vector& labeledSensorsInfo) const = 0; virtual std::vector getLabeledSensorsInfo(boost::asio::yield_context& yield, const SensorsInfo& sensorsInfo) const = 0; }; } // namespace interfaces