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 "types/sensor_types.hpp" 7 #include "utils/labeled_tuple.hpp" 8 #include "utils/tstring.hpp" 9 10 #include <sdbusplus/message/types.hpp> 11 12 #include <chrono> 13 #include <string> 14 #include <tuple> 15 #include <type_traits> 16 #include <variant> 17 #include <vector> 18 19 using ReadingParameters = std::vector<std::tuple< 20 std::vector<std::tuple<sdbusplus::message::object_path, std::string>>, 21 std::string, std::string, uint64_t>>; 22 23 using LabeledMetricParameters = utils::LabeledTuple< 24 std::tuple<std::vector<LabeledSensorInfo>, OperationType, 25 CollectionTimeScope, CollectionDuration>, 26 utils::tstring::SensorPath, utils::tstring::OperationType, 27 utils::tstring::CollectionTimeScope, utils::tstring::CollectionDuration>; 28 29 using AddReportVariant = 30 std::variant<std::monostate, bool, uint64_t, std::string, 31 std::vector<std::string>, ReadingParameters>; 32 33 ReadingParameters 34 toReadingParameters(const std::vector<LabeledMetricParameters>& labeled); 35