blob: 5a960a4b0ec67342079df5fc0813579b1b5e92f9 [file] [log] [blame]
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +02001#pragma once
2
Krzysztof Grobelnyd2238192020-12-02 09:27:28 +00003#include "interfaces/types.hpp"
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +02004#include "metric_value.hpp"
5
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 Grobelnyc8e3a642020-10-23 12:29:16 +020019 virtual const 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