xref: /openbmc/telemetry/src/types/report_types.cpp (revision 583ba441654657bb4ba9d051b747144a7258c159)
1 #include "report_types.hpp"
2 
3 #include "utils/transform.hpp"
4 
toReadingParameters(const std::vector<LabeledMetricParameters> & labeled)5 ReadingParameters toReadingParameters(
6     const std::vector<LabeledMetricParameters>& labeled)
7 {
8     namespace ts = utils::tstring;
9 
10     return utils::transform(
11         labeled, [](const LabeledMetricParameters& metricParams) {
12             return ReadingParameters::value_type(
13                 utils::transform(
14                     metricParams.at_label<ts::SensorPath>(),
15                     [](const LabeledSensorInfo& sensorParameters) {
16                         return std::tuple<sdbusplus::message::object_path,
17                                           std::string>(
18                             sensorParameters.at_label<ts::Path>(),
19                             sensorParameters.at_label<ts::Metadata>());
20                     }),
21                 utils::enumToString(metricParams.at_label<ts::OperationType>()),
22                 utils::enumToString(
23                     metricParams.at_label<ts::CollectionTimeScope>()),
24                 metricParams.at_label<ts::CollectionDuration>().t.count());
25         });
26 }
27