1c8e3a64aSKrzysztof Grobelny #pragma once 2c8e3a64aSKrzysztof Grobelny 3c8e3a64aSKrzysztof Grobelny #include "metric_value.hpp" 4dcc4e193SKrzysztof Grobelny #include "types/report_types.hpp" 5c8e3a64aSKrzysztof Grobelny 6e2362796SWludzik, Jozef #include <nlohmann/json.hpp> 7e2362796SWludzik, Jozef 8c8e3a64aSKrzysztof Grobelny #include <vector> 9c8e3a64aSKrzysztof Grobelny 10c8e3a64aSKrzysztof Grobelny namespace interfaces 11c8e3a64aSKrzysztof Grobelny { 12c8e3a64aSKrzysztof Grobelny 13c8e3a64aSKrzysztof Grobelny class Metric 14c8e3a64aSKrzysztof Grobelny { 15c8e3a64aSKrzysztof Grobelny public: 16c8e3a64aSKrzysztof Grobelny virtual ~Metric() = default; 17c8e3a64aSKrzysztof Grobelny 186ccfcbf5SKrzysztof Grobelny virtual void initialize() = 0; 19*8069771cSKrzysztof Grobelny virtual std::vector<MetricValue> getReadings() const = 0; 20d2238194SKrzysztof Grobelny virtual LabeledMetricParameters dumpConfiguration() const = 0; 21c8e3a64aSKrzysztof Grobelny }; 22c8e3a64aSKrzysztof Grobelny 23c8e3a64aSKrzysztof Grobelny } // namespace interfaces 24