xref: /openbmc/telemetry/src/interfaces/metric.hpp (revision dcc4e193)
1c8e3a64aSKrzysztof Grobelny #pragma once
2c8e3a64aSKrzysztof Grobelny 
3c8e3a64aSKrzysztof Grobelny #include "metric_value.hpp"
4*dcc4e193SKrzysztof Grobelny #include "types/report_types.hpp"
5c8e3a64aSKrzysztof Grobelny 
6e2362796SWludzik, Jozef #include <nlohmann/json.hpp>
7e2362796SWludzik, Jozef 
8c8e3a64aSKrzysztof Grobelny #include <vector>
9c8e3a64aSKrzysztof Grobelny 
10c8e3a64aSKrzysztof Grobelny namespace interfaces
11c8e3a64aSKrzysztof Grobelny {
12c8e3a64aSKrzysztof Grobelny 
13c8e3a64aSKrzysztof Grobelny class Metric
14c8e3a64aSKrzysztof Grobelny {
15c8e3a64aSKrzysztof Grobelny   public:
16c8e3a64aSKrzysztof Grobelny     virtual ~Metric() = default;
17c8e3a64aSKrzysztof Grobelny 
186ccfcbf5SKrzysztof Grobelny     virtual void initialize() = 0;
19*dcc4e193SKrzysztof Grobelny     virtual const std::vector<MetricValue>& getReadings() const = 0;
20d2238194SKrzysztof Grobelny     virtual LabeledMetricParameters dumpConfiguration() const = 0;
21c8e3a64aSKrzysztof Grobelny };
22c8e3a64aSKrzysztof Grobelny 
23c8e3a64aSKrzysztof Grobelny } // namespace interfaces
24