blob: afca8a6577f0aa36e0465e38f1068dde7d21f8ff [file] [log] [blame]
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +02001#pragma once
2
3#include "metric_value.hpp"
Krzysztof Grobelny753e4b32021-02-11 12:58:58 +00004#include "types/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 Grobelnye8fc5752021-02-05 14:30:45 +000019 virtual const MetricValue& getReading() 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