176833cb5SWludzik, Jozef #pragma once 276833cb5SWludzik, Jozef 3*a4e67616SCezary Zwolak #include "interfaces/json_storage.hpp" 476833cb5SWludzik, Jozef #include "interfaces/trigger.hpp" 576833cb5SWludzik, Jozef #include "interfaces/trigger_manager.hpp" 676833cb5SWludzik, Jozef #include "interfaces/trigger_types.hpp" 776833cb5SWludzik, Jozef 81477fe6aSWludzik, Jozef #include <boost/asio/spawn.hpp> 9d960e1f3SWludzik, Jozef #include <sdbusplus/message/types.hpp> 101477fe6aSWludzik, Jozef 1176833cb5SWludzik, Jozef #include <memory> 1276833cb5SWludzik, Jozef #include <utility> 1376833cb5SWludzik, Jozef 1476833cb5SWludzik, Jozef namespace interfaces 1576833cb5SWludzik, Jozef { 1676833cb5SWludzik, Jozef 1776833cb5SWludzik, Jozef class TriggerFactory 1876833cb5SWludzik, Jozef { 1976833cb5SWludzik, Jozef public: 2076833cb5SWludzik, Jozef virtual ~TriggerFactory() = default; 2176833cb5SWludzik, Jozef 2276833cb5SWludzik, Jozef virtual std::unique_ptr<interfaces::Trigger> make( 231477fe6aSWludzik, Jozef boost::asio::yield_context& yield, const std::string& name, 241477fe6aSWludzik, Jozef bool isDiscrete, bool logToJournal, bool logToRedfish, 251477fe6aSWludzik, Jozef bool updateReport, 2676833cb5SWludzik, Jozef const std::vector< 2776833cb5SWludzik, Jozef std::pair<sdbusplus::message::object_path, std::string>>& sensors, 2876833cb5SWludzik, Jozef const std::vector<std::string>& reportNames, 2976833cb5SWludzik, Jozef const TriggerThresholdParams& thresholdParams, 30*a4e67616SCezary Zwolak interfaces::TriggerManager& triggerManager, 31*a4e67616SCezary Zwolak interfaces::JsonStorage& triggerStorage) const = 0; 3276833cb5SWludzik, Jozef }; 3376833cb5SWludzik, Jozef 3476833cb5SWludzik, Jozef } // namespace interfaces 35