176833cb5SWludzik, Jozef #pragma once 276833cb5SWludzik, Jozef 376833cb5SWludzik, Jozef #include "interfaces/trigger_types.hpp" 476833cb5SWludzik, Jozef 5e8fc5751SKrzysztof Grobelny #include <sdbusplus/message.hpp> 6e8fc5751SKrzysztof Grobelny 71477fe6aSWludzik, Jozef #include <chrono> 876833cb5SWludzik, Jozef #include <utility> 976833cb5SWludzik, Jozef 1076833cb5SWludzik, Jozef class TriggerParams 1176833cb5SWludzik, Jozef { 1276833cb5SWludzik, Jozef public: 1376833cb5SWludzik, Jozef TriggerParams& name(std::string val) 1476833cb5SWludzik, Jozef { 1576833cb5SWludzik, Jozef nameProperty = std::move(val); 1676833cb5SWludzik, Jozef return *this; 1776833cb5SWludzik, Jozef } 1876833cb5SWludzik, Jozef 1976833cb5SWludzik, Jozef const std::string& name() const 2076833cb5SWludzik, Jozef { 2176833cb5SWludzik, Jozef return nameProperty; 2276833cb5SWludzik, Jozef } 2376833cb5SWludzik, Jozef 24*f763c9e3SSzymon Dompke TriggerParams& isDiscrete(bool val) 25*f763c9e3SSzymon Dompke { 26*f763c9e3SSzymon Dompke discreteProperty = val; 27*f763c9e3SSzymon Dompke return *this; 28*f763c9e3SSzymon Dompke } 29*f763c9e3SSzymon Dompke 3076833cb5SWludzik, Jozef bool isDiscrete() const 3176833cb5SWludzik, Jozef { 3276833cb5SWludzik, Jozef return discreteProperty; 3376833cb5SWludzik, Jozef } 3476833cb5SWludzik, Jozef 3576833cb5SWludzik, Jozef bool logToJournal() const 3676833cb5SWludzik, Jozef { 3776833cb5SWludzik, Jozef return logToJournalProperty; 3876833cb5SWludzik, Jozef } 3976833cb5SWludzik, Jozef 4076833cb5SWludzik, Jozef bool logToRedfish() const 4176833cb5SWludzik, Jozef { 4276833cb5SWludzik, Jozef return logToRedfishProperty; 4376833cb5SWludzik, Jozef } 4476833cb5SWludzik, Jozef 4576833cb5SWludzik, Jozef bool updateReport() const 4676833cb5SWludzik, Jozef { 4776833cb5SWludzik, Jozef return updateReportProperty; 4876833cb5SWludzik, Jozef } 4976833cb5SWludzik, Jozef 5076833cb5SWludzik, Jozef const std::vector<std::pair<sdbusplus::message::object_path, std::string>>& 5176833cb5SWludzik, Jozef sensors() const 5276833cb5SWludzik, Jozef { 5376833cb5SWludzik, Jozef return sensorsProperty; 5476833cb5SWludzik, Jozef } 5576833cb5SWludzik, Jozef 5676833cb5SWludzik, Jozef const std::vector<std::string>& reportNames() const 5776833cb5SWludzik, Jozef { 5876833cb5SWludzik, Jozef return reportNamesProperty; 5976833cb5SWludzik, Jozef } 6076833cb5SWludzik, Jozef 61*f763c9e3SSzymon Dompke TriggerParams& thresholdParams(TriggerThresholdParams val) 62*f763c9e3SSzymon Dompke { 63*f763c9e3SSzymon Dompke thresholdsProperty = std::move(val); 64*f763c9e3SSzymon Dompke return *this; 65*f763c9e3SSzymon Dompke } 66*f763c9e3SSzymon Dompke 671477fe6aSWludzik, Jozef const TriggerThresholdParams& thresholdParams() const 6876833cb5SWludzik, Jozef { 6976833cb5SWludzik, Jozef return thresholdsProperty; 7076833cb5SWludzik, Jozef } 7176833cb5SWludzik, Jozef 7276833cb5SWludzik, Jozef private: 7376833cb5SWludzik, Jozef std::string nameProperty = "Trigger1"; 7476833cb5SWludzik, Jozef bool discreteProperty = false; 7576833cb5SWludzik, Jozef bool logToJournalProperty = false; 7676833cb5SWludzik, Jozef bool logToRedfishProperty = false; 7776833cb5SWludzik, Jozef bool updateReportProperty = false; 7876833cb5SWludzik, Jozef std::vector<std::pair<sdbusplus::message::object_path, std::string>> 791477fe6aSWludzik, Jozef sensorsProperty = { 801477fe6aSWludzik, Jozef {sdbusplus::message::object_path( 811477fe6aSWludzik, Jozef "/xyz/openbmc_project/sensors/temperature/BMC_Temp"), 821477fe6aSWludzik, Jozef ""}}; 831477fe6aSWludzik, Jozef std::vector<std::string> reportNamesProperty = {"Report1"}; 841477fe6aSWludzik, Jozef TriggerThresholdParams thresholdsProperty = 851477fe6aSWludzik, Jozef std::vector<numeric::ThresholdParam>{ 869f145912SWludzik, Jozef {numeric::typeToString(numeric::Type::lowerCritical), 871477fe6aSWludzik, Jozef std::chrono::milliseconds(10).count(), 889f145912SWludzik, Jozef numeric::directionToString(numeric::Direction::decreasing), 0.0}, 899f145912SWludzik, Jozef {numeric::typeToString(numeric::Type::upperCritical), 901477fe6aSWludzik, Jozef std::chrono::milliseconds(10).count(), 919f145912SWludzik, Jozef numeric::directionToString(numeric::Direction::increasing), 90.0}}; 9276833cb5SWludzik, Jozef }; 93