added support for onChange report

Report is now notified when metric changes and updates reading values.

Tested:
  - Added new unit tests
  - OnChange report updates Readings when metric values changes

Change-Id: I3be9ef7aa0486cb15bac627aa1de5cc632613b3b
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
diff --git a/src/interfaces/metric.hpp b/src/interfaces/metric.hpp
index 4e2fae3..c40e960 100644
--- a/src/interfaces/metric.hpp
+++ b/src/interfaces/metric.hpp
@@ -1,6 +1,8 @@
 #pragma once
 
+#include "interfaces/metric_listener.hpp"
 #include "metric_value.hpp"
+#include "types/duration_types.hpp"
 #include "types/report_types.hpp"
 
 #include <nlohmann/json.hpp>
@@ -20,6 +22,11 @@
     virtual std::vector<MetricValue> getReadings() const = 0;
     virtual LabeledMetricParameters dumpConfiguration() const = 0;
     virtual uint64_t sensorCount() const = 0;
+    virtual void registerForUpdates(interfaces::MetricListener& listener) = 0;
+    virtual void
+        unregisterFromUpdates(interfaces::MetricListener& listener) = 0;
+    virtual void updateReadings(Milliseconds) = 0;
+    virtual bool isTimerRequired() const = 0;
 };
 
 } // namespace interfaces