blob: 44ae901d23130ceb05656bc904c71c65ca31d5d5 [file] [log] [blame]
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +02001#pragma once
2
Wludzik, Jozefe2362792020-10-27 17:23:55 +01003#include "report_manager.hpp"
Krzysztof Grobelnydcc4e192021-03-08 09:09:34 +00004#include "types/report_types.hpp"
Wludzik, Jozefe2362792020-10-27 17:23:55 +01005
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +02006#include <chrono>
7#include <string>
8
9class ReportParams final
10{
11 public:
12 ReportParams& reportName(std::string val)
13 {
14 reportNameProperty = std::move(val);
15 return *this;
16 }
17
18 const std::string& reportName() const
19 {
20 return reportNameProperty;
21 }
22
Krzysztof Grobelny51497a02021-11-09 14:56:22 +010023 ReportParams& reportingType(const ReportingType val)
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +020024 {
Krzysztof Grobelny51497a02021-11-09 14:56:22 +010025 reportingTypeProperty = val;
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +020026 return *this;
27 }
28
Krzysztof Grobelny51497a02021-11-09 14:56:22 +010029 ReportingType reportingType() const
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +020030 {
31 return reportingTypeProperty;
32 }
33
Krzysztof Grobelny51497a02021-11-09 14:56:22 +010034 ReportParams& reportActions(std::vector<ReportAction> val)
Wludzik, Jozefe2362792020-10-27 17:23:55 +010035 {
Krzysztof Grobelny51497a02021-11-09 14:56:22 +010036 reportActionsProperty = std::move(val);
Wludzik, Jozefe2362792020-10-27 17:23:55 +010037 return *this;
38 }
39
Krzysztof Grobelny51497a02021-11-09 14:56:22 +010040 std::vector<ReportAction> reportActions() const
Wludzik, Jozefe2362792020-10-27 17:23:55 +010041 {
Krzysztof Grobelny51497a02021-11-09 14:56:22 +010042 return reportActionsProperty;
Wludzik, Jozefe2362792020-10-27 17:23:55 +010043 }
44
Krzysztof Grobelnydcc4e192021-03-08 09:09:34 +000045 ReportParams& interval(Milliseconds val)
Wludzik, Jozefe2362792020-10-27 17:23:55 +010046 {
47 intervalProperty = val;
48 return *this;
49 }
50
Krzysztof Grobelnydcc4e192021-03-08 09:09:34 +000051 Milliseconds interval() const
Wludzik, Jozefe2362792020-10-27 17:23:55 +010052 {
53 return intervalProperty;
54 }
55
Lukasz Kazmierczak7e098e92021-09-16 15:59:56 +020056 ReportParams& enabled(bool val)
57 {
58 enabledProperty = val;
59 return *this;
60 }
61
62 bool enabled() const
63 {
64 return enabledProperty;
65 }
66
Szymon Dompke3eb56862021-09-20 15:32:04 +020067 ReportParams& appendLimit(uint64_t val)
68 {
69 appendLimitProperty = val;
70 return *this;
71 }
72
73 uint64_t appendLimit() const
74 {
75 return appendLimitProperty;
76 }
77
Krzysztof Grobelny51497a02021-11-09 14:56:22 +010078 ReportParams& reportUpdates(ReportUpdates val)
Szymon Dompke3eb56862021-09-20 15:32:04 +020079 {
80 reportUpdatesProperty = val;
81 return *this;
82 }
83
Krzysztof Grobelny51497a02021-11-09 14:56:22 +010084 ReportUpdates reportUpdates() const
Szymon Dompke3eb56862021-09-20 15:32:04 +020085 {
86 return reportUpdatesProperty;
87 }
88
Krzysztof Grobelnydcc4e192021-03-08 09:09:34 +000089 ReportParams& metricParameters(std::vector<LabeledMetricParameters> val)
Wludzik, Jozefe2362792020-10-27 17:23:55 +010090 {
Krzysztof Grobelnydcc4e192021-03-08 09:09:34 +000091 metricParametersProperty = std::move(val);
Wludzik, Jozefe2362792020-10-27 17:23:55 +010092 return *this;
93 }
94
Krzysztof Grobelnydcc4e192021-03-08 09:09:34 +000095 const std::vector<LabeledMetricParameters>& metricParameters() const
Wludzik, Jozefe2362792020-10-27 17:23:55 +010096 {
Krzysztof Grobelnydcc4e192021-03-08 09:09:34 +000097 return metricParametersProperty;
Wludzik, Jozefe2362792020-10-27 17:23:55 +010098 }
99
100 private:
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +0200101 std::string reportNameProperty = "TestReport";
Krzysztof Grobelny51497a02021-11-09 14:56:22 +0100102 ReportingType reportingTypeProperty = ReportingType::onRequest;
103 std::vector<ReportAction> reportActionsProperty;
Krzysztof Grobelnydcc4e192021-03-08 09:09:34 +0000104 Milliseconds intervalProperty = ReportManager::minInterval;
Szymon Dompke3eb56862021-09-20 15:32:04 +0200105 uint64_t appendLimitProperty = 123;
Krzysztof Grobelny51497a02021-11-09 14:56:22 +0100106 ReportUpdates reportUpdatesProperty = ReportUpdates::overwrite;
Krzysztof Grobelnydcc4e192021-03-08 09:09:34 +0000107 std::vector<LabeledMetricParameters> metricParametersProperty{
108 {LabeledMetricParameters{
109 {LabeledSensorParameters{"Service",
110 "/xyz/openbmc_project/sensors/power/p1"}},
111 OperationType::single,
112 "MetricId1",
113 "Metadata1",
114 CollectionTimeScope::point,
115 CollectionDuration(Milliseconds(0u))},
116 LabeledMetricParameters{
117 {LabeledSensorParameters{"Service",
118 "/xyz/openbmc_project/sensors/power/p2"}},
119 OperationType::single,
120 "MetricId2",
121 "Metadata2",
122 CollectionTimeScope::point,
123 CollectionDuration(Milliseconds(0u))}}};
Lukasz Kazmierczak7e098e92021-09-16 15:59:56 +0200124 bool enabledProperty = true;
Krzysztof Grobelnyd2238192020-12-02 09:27:28 +0000125};