1 #pragma once
2 
3 #include "types/collection_duration.hpp"
4 #include "types/collection_time_scope.hpp"
5 #include "types/operation_type.hpp"
6 #include "utils/labeled_tuple.hpp"
7 #include "utils/tstring.hpp"
8 
9 #include <sdbusplus/message/types.hpp>
10 
11 #include <chrono>
12 #include <string>
13 #include <tuple>
14 #include <type_traits>
15 #include <vector>
16 
17 using ReadingParametersPastVersion =
18     std::vector<std::tuple<sdbusplus::message::object_path, std::string,
19                            std::string, std::string>>;
20 
21 using ReadingParameters = std::vector<std::tuple<
22     std::vector<std::tuple<sdbusplus::message::object_path, std::string>>,
23     std::string, std::string, std::string, uint64_t>>;
24 
25 using LabeledSensorParameters =
26     utils::LabeledTuple<std::tuple<std::string, std::string, std::string>,
27                         utils::tstring::Service, utils::tstring::Path,
28                         utils::tstring::Metadata>;
29 
30 using LabeledMetricParameters = utils::LabeledTuple<
31     std::tuple<std::vector<LabeledSensorParameters>, OperationType, std::string,
32                CollectionTimeScope, CollectionDuration>,
33     utils::tstring::SensorPath, utils::tstring::OperationType,
34     utils::tstring::Id, utils::tstring::CollectionTimeScope,
35     utils::tstring::CollectionDuration>;
36 
37 using ReadingData = std::tuple<std::string, std::string, double, uint64_t>;
38 
39 using Readings = std::tuple<uint64_t, std::vector<ReadingData>>;
40 
41 ReadingParameters
42     toReadingParameters(const std::vector<LabeledMetricParameters>& labeled);
43