blob: d63c979bbdb84c6af1aadcfdf786657c03df2f33 [file] [log] [blame]
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +02001#pragma once
2
3#include "metric_value.hpp"
4
Wludzik, Jozefe2362792020-10-27 17:23:55 +01005#include <nlohmann/json.hpp>
6
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +02007#include <vector>
8
9namespace interfaces
10{
11
12class Metric
13{
14 public:
15 virtual ~Metric() = default;
16
Krzysztof Grobelny6ccfcbf2020-11-04 09:31:36 +010017 virtual void initialize() = 0;
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +020018 virtual const std::vector<MetricValue>& getReadings() const = 0;
Wludzik, Jozefe2362792020-10-27 17:23:55 +010019 virtual nlohmann::json to_json() const = 0;
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +020020};
21
22} // namespace interfaces