blob: deb3ed6f0dd8f72b90817e72780b863ea7a37589 [file] [log] [blame]
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +02001#pragma once
2
Krzysztof Grobelny9f9ff902021-03-05 14:57:53 +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 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