blob: 57a2b68cc68f1db2bcbb8760ffc393cd29ac783a [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;
Lukasz Kazmierczak7e098e92021-09-16 15:59:56 +020019 virtual void deinitialize() = 0;
Krzysztof Grobelny80697712021-03-04 09:49:27 +000020 virtual std::vector<MetricValue> getReadings() const = 0;
Krzysztof Grobelnyd2238192020-12-02 09:27:28 +000021 virtual LabeledMetricParameters dumpConfiguration() const = 0;
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +020022};
23
24} // namespace interfaces