metric.cpp (3a1c297a36bcd78d33ee45c603cb1b46e4619f49) metric.cpp (cff70c14ef8cadb7fffd0cd41e06b972fa240e56)
1#include "metric.hpp"
2
3#include "metrics/collection_data.hpp"
4#include "types/report_types.hpp"
5#include "types/sensor_types.hpp"
6#include "utils/labeled_tuple.hpp"
7#include "utils/transform.hpp"
8
9#include <sdbusplus/exception.hpp>
10
11#include <algorithm>
12
13Metric::Metric(Sensors sensorsIn, OperationType operationTypeIn,
1#include "metric.hpp"
2
3#include "metrics/collection_data.hpp"
4#include "types/report_types.hpp"
5#include "types/sensor_types.hpp"
6#include "utils/labeled_tuple.hpp"
7#include "utils/transform.hpp"
8
9#include <sdbusplus/exception.hpp>
10
11#include <algorithm>
12
13Metric::Metric(Sensors sensorsIn, OperationType operationTypeIn,
14 std::string idIn, CollectionTimeScope timeScopeIn,
14 CollectionTimeScope timeScopeIn,
15 CollectionDuration collectionDurationIn,
16 std::unique_ptr<interfaces::Clock> clockIn) :
15 CollectionDuration collectionDurationIn,
16 std::unique_ptr<interfaces::Clock> clockIn) :
17 id(std::move(idIn)),
18 sensors(std::move(sensorsIn)), operationType(operationTypeIn),
19 collectionTimeScope(timeScopeIn), collectionDuration(collectionDurationIn),
17 sensors(std::move(sensorsIn)),
18 operationType(operationTypeIn), collectionTimeScope(timeScopeIn),
19 collectionDuration(collectionDurationIn),
20 collectionAlgorithms(
21 metrics::makeCollectionData(sensors.size(), operationType,
22 collectionTimeScope, collectionDuration)),
23 clock(std::move(clockIn))
24{}
25
26void Metric::registerForUpdates(interfaces::MetricListener& listener)
27{

--- 48 unchanged lines hidden (view full) ---

76 {
77 const auto idx = readings.size();
78 std::swap(collectionAlgorithms[i],
79 collectionAlgorithms[idx]);
80 std::swap(sensors[i], sensors[idx]);
81 i = idx;
82 }
83
20 collectionAlgorithms(
21 metrics::makeCollectionData(sensors.size(), operationType,
22 collectionTimeScope, collectionDuration)),
23 clock(std::move(clockIn))
24{}
25
26void Metric::registerForUpdates(interfaces::MetricListener& listener)
27{

--- 48 unchanged lines hidden (view full) ---

76 {
77 const auto idx = readings.size();
78 std::swap(collectionAlgorithms[i],
79 collectionAlgorithms[idx]);
80 std::swap(sensors[i], sensors[idx]);
81 i = idx;
82 }
83
84 readings.emplace_back(id, sensors[i]->metadata(), *value,
84 readings.emplace_back(sensors[i]->metadata(), *value,
85 systemTimestamp);
86 }
87 }
88 }
89
90 return readings;
91}
92

--- 25 unchanged lines hidden (view full) ---

118
119LabeledMetricParameters Metric::dumpConfiguration() const
120{
121 auto sensorPath = utils::transform(sensors, [this](const auto& sensor) {
122 return LabeledSensorInfo(sensor->id().service, sensor->id().path,
123 sensor->metadata());
124 });
125
85 systemTimestamp);
86 }
87 }
88 }
89
90 return readings;
91}
92

--- 25 unchanged lines hidden (view full) ---

118
119LabeledMetricParameters Metric::dumpConfiguration() const
120{
121 auto sensorPath = utils::transform(sensors, [this](const auto& sensor) {
122 return LabeledSensorInfo(sensor->id().service, sensor->id().path,
123 sensor->metadata());
124 });
125
126 return LabeledMetricParameters(std::move(sensorPath), operationType, id,
126 return LabeledMetricParameters(std::move(sensorPath), operationType,
127 collectionTimeScope, collectionDuration);
128}
129
130uint64_t Metric::metricCount() const
131{
132 return sensors.size();
133}
134

--- 34 unchanged lines hidden ---
127 collectionTimeScope, collectionDuration);
128}
129
130uint64_t Metric::metricCount() const
131{
132 return sensors.size();
133}
134

--- 34 unchanged lines hidden ---