18#include <fmt/format.h>
26std::pair<uint32_t, uint16_t> getDate(
const std::string& refDate)
30 if (refDate.empty()) {
31 auto current = std::time(
nullptr);
32 auto t = std::localtime(¤t);
36 std::istringstream ss(refDate);
37 ss >> std::get_time(&t,
"%Y-%b-%d %H:%M:%S");
40 std::istringstream sss(refDate);
41 sss >> std::get_time(&
tt,
"%Y-%m-%d %H:%M:%S");
44 std::istringstream ssss(refDate);
45 ssss >> std::get_time(&
tt,
"%Y-%B-%d %H:%M:%S");
47 LOG(error) <<
"We cannot parse the date";
49 seconds = mktime(&ttt);
51 seconds = mktime(&
tt);
58 return std::make_pair(seconds, msec);
69std::vector<o2::dcs::DataPointCompositeObject>
71 T minValue, T maxValue, std::string refDate)
73 std::vector<o2::dcs::DataPointCompositeObject> dpcoms;
74 static_assert(std::is_arithmetic<T>::value,
"T must be an arithmetic type");
75 using distType = std::conditional_t<std::is_integral<T>::value,
76 std::uniform_int_distribution<long long>,
77 std::uniform_real_distribution<T>>;
78 std::random_device
rd;
79 std::mt19937 mt(
rd());
80 distType dist{minValue, maxValue};
81 auto [seconds, msec] = getDate(refDate);
100template std::vector<o2::dcs::DataPointCompositeObject>
generateRandomDataPoints<double>(
const std::vector<std::string>& aliases,
double minValue,
double maxValue, std::string);
102template std::vector<o2::dcs::DataPointCompositeObject>
generateRandomDataPoints<float>(
const std::vector<std::string>& aliases,
float minValue,
float maxValue, std::string);
104template std::vector<o2::dcs::DataPointCompositeObject>
generateRandomDataPoints<uint32_t>(
const std::vector<std::string>& aliases, uint32_t minValue, uint32_t maxValue, std::string);
106template std::vector<o2::dcs::DataPointCompositeObject>
generateRandomDataPoints<int32_t>(
const std::vector<std::string>& aliases, int32_t minValue, int32_t maxValue, std::string);
110template std::vector<o2::dcs::DataPointCompositeObject>
generateRandomDataPoints<char>(
const std::vector<std::string>& aliases,
char minValue,
char maxValue, std::string);
116std::vector<o2::dcs::DataPointCompositeObject>
generateRandomDataPoints<bool>(
const std::vector<std::string>& aliases,
bool minValue,
bool maxValue, std::string refDate)
118 std::vector<o2::dcs::DataPointCompositeObject> dpcoms;
119 std::random_device
rd;
120 std::mt19937 mt(
rd());
121 std::uniform_int_distribution dist{0, 1};
122 auto [seconds, msec] = getDate(refDate);
124 bool value = dist(mt);
135std::vector<o2::dcs::DataPointCompositeObject>
generateRandomDataPoints<std::string>(
const std::vector<std::string>& aliases, std::string minLength, std::string maxLength, std::string refDate)
137 std::vector<o2::dcs::DataPointCompositeObject> dpcoms;
138 std::random_device
rd;
139 std::mt19937
mt(
rd());
140 std::uniform_int_distribution<std::string::size_type> dist{minLength.size(), maxLength.size()};
141 auto [seconds, msec] = getDate(refDate);
GLsizei const GLfloat * value
std::string random_string2(const size_t length) noexcept
std::vector< o2::dcs::DataPointCompositeObject > generateRandomDataPoints< bool >(const std::vector< std::string > &aliases, bool minValue, bool maxValue, std::string refDate)
std::vector< std::string > expandAliases(const std::vector< std::string > &patternedAliases)
template std::vector< o2::dcs::DataPointCompositeObject > generateRandomDataPoints< char >(const std::vector< std::string > &aliases, char minValue, char maxValue, std::string)
o2::dcs::DataPointCompositeObject createDataPointCompositeObject(const std::string &alias, T val, uint32_t seconds, uint16_t msec, uint16_t flags=0)
std::vector< DataPointCompositeObject > generateRandomDataPoints(const std::vector< std::string > &aliases, T min, T max, std::string refDate="")
template std::vector< o2::dcs::DataPointCompositeObject > generateRandomDataPoints< int32_t >(const std::vector< std::string > &aliases, int32_t minValue, int32_t maxValue, std::string)
template std::vector< o2::dcs::DataPointCompositeObject > generateRandomDataPoints< long long >(const std::vector< std::string > &aliases, long long minValue, long long maxValue, std::string)
template std::vector< o2::dcs::DataPointCompositeObject > generateRandomDataPoints< double >(const std::vector< std::string > &aliases, double minValue, double maxValue, std::string)
template std::vector< o2::dcs::DataPointCompositeObject > generateRandomDataPoints< float >(const std::vector< std::string > &aliases, float minValue, float maxValue, std::string)
std::vector< o2::dcs::DataPointCompositeObject > generateRandomDataPoints< std::string >(const std::vector< std::string > &aliases, std::string minLength, std::string maxLength, std::string refDate)
template std::vector< o2::dcs::DataPointCompositeObject > generateRandomDataPoints< uint32_t >(const std::vector< std::string > &aliases, uint32_t minValue, uint32_t maxValue, std::string)
std::vector< std::string > aliases(std::vector< MeasurementType > types={ MeasurementType::HV_V, MeasurementType::HV_I, MeasurementType::LV_V_FEE_ANALOG, MeasurementType::LV_V_FEE_DIGITAL, MeasurementType::LV_V_SOLAR})
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"