blob: 62a8f4407341dff49ed7c7755eab94b9c0aa51f2 [file] [log] [blame]
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +02001#pragma once
2
3#include "metric_value.hpp"
Krzysztof Grobelnydcc4e192021-03-08 09:09:34 +00004#include "types/report_types.hpp"
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +02005
Wludzik, Jozefe2362792020-10-27 17:23:55 +01006#include <nlohmann/json.hpp>
7
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +02008#include <vector>
9
10namespace interfaces
11{
12
13class Metric
14{
15 public:
16 virtual ~Metric() = default;
17
Krzysztof Grobelny6ccfcbf2020-11-04 09:31:36 +010018 virtual void initialize() = 0;
Krzysztof Grobelny80697712021-03-04 09:49:27 +000019 virtual std::vector<MetricValue> getReadings() const = 0;
Krzysztof Grobelnyd2238192020-12-02 09:27:28 +000020 virtual LabeledMetricParameters dumpConfiguration() const = 0;
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +020021};
22
23} // namespace interfaces