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 24f763c9e3SSzymon Dompke TriggerParams& isDiscrete(bool val) 25f763c9e3SSzymon Dompke { 26f763c9e3SSzymon Dompke discreteProperty = val; 27f763c9e3SSzymon Dompke return *this; 28f763c9e3SSzymon Dompke } 29f763c9e3SSzymon 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 45a4e67616SCezary Zwolak TriggerParams& updateReport(bool updateReport) 46a4e67616SCezary Zwolak { 47a4e67616SCezary Zwolak updateReportProperty = updateReport; 48a4e67616SCezary Zwolak return *this; 49a4e67616SCezary Zwolak } 50a4e67616SCezary Zwolak 5176833cb5SWludzik, Jozef bool updateReport() const 5276833cb5SWludzik, Jozef { 5376833cb5SWludzik, Jozef return updateReportProperty; 5476833cb5SWludzik, Jozef } 5576833cb5SWludzik, Jozef 56*4416fce6SCezary Zwolak const std::vector<LabeledSensorInfo>& sensors() const 5776833cb5SWludzik, Jozef { 58*4416fce6SCezary Zwolak return labeledSensorsProperty; 5976833cb5SWludzik, Jozef } 6076833cb5SWludzik, Jozef 6176833cb5SWludzik, Jozef const std::vector<std::string>& reportNames() const 6276833cb5SWludzik, Jozef { 6376833cb5SWludzik, Jozef return reportNamesProperty; 6476833cb5SWludzik, Jozef } 6576833cb5SWludzik, Jozef 66*4416fce6SCezary Zwolak TriggerParams& thresholdParams(LabeledTriggerThresholdParams val) 67f763c9e3SSzymon Dompke { 68*4416fce6SCezary Zwolak labeledThresholdsProperty = std::move(val); 69f763c9e3SSzymon Dompke return *this; 70f763c9e3SSzymon Dompke } 71f763c9e3SSzymon Dompke 72*4416fce6SCezary Zwolak const LabeledTriggerThresholdParams& thresholdParams() const 7376833cb5SWludzik, Jozef { 74*4416fce6SCezary Zwolak return labeledThresholdsProperty; 7576833cb5SWludzik, Jozef } 7676833cb5SWludzik, Jozef 7776833cb5SWludzik, Jozef private: 7876833cb5SWludzik, Jozef std::string nameProperty = "Trigger1"; 7976833cb5SWludzik, Jozef bool discreteProperty = false; 8076833cb5SWludzik, Jozef bool logToJournalProperty = false; 8176833cb5SWludzik, Jozef bool logToRedfishProperty = false; 82a4e67616SCezary Zwolak bool updateReportProperty = true; 83*4416fce6SCezary Zwolak std::vector<LabeledSensorInfo> labeledSensorsProperty = { 84*4416fce6SCezary Zwolak {"service1", "/xyz/openbmc_project/sensors/temperature/BMC_Temp", 85*4416fce6SCezary Zwolak "metadata1"}}; 86*4416fce6SCezary Zwolak 871477fe6aSWludzik, Jozef std::vector<std::string> reportNamesProperty = {"Report1"}; 88*4416fce6SCezary Zwolak 89*4416fce6SCezary Zwolak LabeledTriggerThresholdParams labeledThresholdsProperty = 90*4416fce6SCezary Zwolak std::vector<numeric::LabeledThresholdParam>{ 91*4416fce6SCezary Zwolak numeric::LabeledThresholdParam{ 92*4416fce6SCezary Zwolak numeric::Type::lowerCritical, 931477fe6aSWludzik, Jozef std::chrono::milliseconds(10).count(), 94*4416fce6SCezary Zwolak numeric::Direction::decreasing, 0.5}, 95*4416fce6SCezary Zwolak numeric::LabeledThresholdParam{ 96*4416fce6SCezary Zwolak numeric::Type::upperCritical, 971477fe6aSWludzik, Jozef std::chrono::milliseconds(10).count(), 98*4416fce6SCezary Zwolak numeric::Direction::increasing, 90.2}}; 9976833cb5SWludzik, Jozef }; 100