Lines Matching refs:std

36 std::optional<std::chrono::milliseconds> fromDurationString(std::string_view v)  in fromDurationString()
38 std::chrono::milliseconds out = std::chrono::milliseconds::zero(); in fromDurationString()
58 return std::nullopt; in fromDurationString()
74 auto [ptr, ec] = std::from_chars(v.begin(), v.end(), ticks); in fromDurationString()
75 if (ec != std::errc()) in fromDurationString()
78 return std::nullopt; in fromDurationString()
84 return std::nullopt; in fromDurationString()
90 return std::nullopt; in fromDurationString()
92 out += std::chrono::days(ticks); in fromDurationString()
98 return std::nullopt; in fromDurationString()
100 out += std::chrono::hours(ticks); in fromDurationString()
106 return std::nullopt; in fromDurationString()
108 out += std::chrono::minutes(ticks); in fromDurationString()
114 return std::nullopt; in fromDurationString()
116 out += std::chrono::seconds(ticks); in fromDurationString()
125 out += std::chrono::seconds(ticks); in fromDurationString()
131 return std::nullopt; in fromDurationString()
146 out += std::chrono::milliseconds(ticks); in fromDurationString()
153 return std::nullopt; in fromDurationString()
166 std::string toDurationString(std::chrono::milliseconds ms) in toDurationString()
168 if (ms < std::chrono::milliseconds::zero()) in toDurationString()
173 std::chrono::days days = std::chrono::floor<std::chrono::days>(ms); in toDurationString()
176 std::chrono::hours hours = std::chrono::floor<std::chrono::hours>(ms); in toDurationString()
179 std::chrono::minutes minutes = std::chrono::floor<std::chrono::minutes>(ms); in toDurationString()
182 std::chrono::seconds seconds = std::chrono::floor<std::chrono::seconds>(ms); in toDurationString()
184 std::string daysStr; in toDurationString()
187 daysStr = std::format("{}D", days.count()); in toDurationString()
189 std::string hoursStr; in toDurationString()
192 hoursStr = std::format("{}H", hours.count()); in toDurationString()
194 std::string minStr; in toDurationString()
197 minStr = std::format("{}M", minutes.count()); in toDurationString()
199 std::string secStr; in toDurationString()
202 secStr = std::format("{}.{:03}S", seconds.count(), ms.count()); in toDurationString()
205 return std::format("P{}T{}{}{}", daysStr, hoursStr, minStr, secStr); in toDurationString()
208 std::optional<std::string> toDurationStringFromUint(uint64_t timeMs) in toDurationStringFromUint()
211 static_cast<uint64_t>(std::chrono::milliseconds::max().count()); in toDurationStringFromUint()
215 return std::nullopt; in toDurationStringFromUint()
218 std::string duration = toDurationString(std::chrono::milliseconds(timeMs)); in toDurationStringFromUint()
221 return std::nullopt; in toDurationStringFromUint()
224 return std::make_optional(duration); in toDurationStringFromUint()
241 constexpr std::tuple<IntType, unsigned, unsigned> civilFromDays( in civilFromDays()
255 return std::tuple<IntType, unsigned, unsigned>(y + (m <= 2), m, d); in civilFromDays()
259 std::string toISO8061ExtendedStr(std::chrono::duration<IntType, Period> t) in toISO8061ExtendedStr()
261 using seconds = std::chrono::duration<int>; in toISO8061ExtendedStr()
262 using minutes = std::chrono::duration<int, std::ratio<60>>; in toISO8061ExtendedStr()
263 using hours = std::chrono::duration<int, std::ratio<3600>>; in toISO8061ExtendedStr()
264 using days = std::chrono::duration< in toISO8061ExtendedStr()
265 IntType, std::ratio_multiply<hours::period, std::ratio<24>>>; in toISO8061ExtendedStr()
268 days d = std::chrono::duration_cast<days>(t); in toISO8061ExtendedStr()
277 std::tie(year, month, day) = details::civilFromDays(d.count()); in toISO8061ExtendedStr()
285 t = days(1) - std::chrono::duration<IntType, Period>(1); in toISO8061ExtendedStr()
292 t = std::chrono::duration<IntType, Period>::zero(); in toISO8061ExtendedStr()
295 hours hr = std::chrono::duration_cast<hours>(t); in toISO8061ExtendedStr()
298 minutes mt = std::chrono::duration_cast<minutes>(t); in toISO8061ExtendedStr()
301 seconds se = std::chrono::duration_cast<seconds>(t); in toISO8061ExtendedStr()
305 std::string subseconds; in toISO8061ExtendedStr()
306 if constexpr (std::is_same_v<typename decltype(t)::period, std::milli>) in toISO8061ExtendedStr()
308 using MilliDuration = std::chrono::duration<int, std::milli>; in toISO8061ExtendedStr()
309 MilliDuration subsec = std::chrono::duration_cast<MilliDuration>(t); in toISO8061ExtendedStr()
310 subseconds = std::format(".{:03}", subsec.count()); in toISO8061ExtendedStr()
312 else if constexpr (std::is_same_v<typename decltype(t)::period, std::micro>) in toISO8061ExtendedStr()
314 using MicroDuration = std::chrono::duration<int, std::micro>; in toISO8061ExtendedStr()
315 MicroDuration subsec = std::chrono::duration_cast<MicroDuration>(t); in toISO8061ExtendedStr()
316 subseconds = std::format(".{:06}", subsec.count()); in toISO8061ExtendedStr()
319 return std::format("{:04}-{:02}-{:02}T{:02}:{:02}:{:02}{}+00:00", year, in toISO8061ExtendedStr()
328 std::string toISO8061ExtendedStr(std::chrono::duration<IntType, Period> dur)
330 using namespace std::literals::chrono_literals;
332 using SubType = std::chrono::duration<IntType, Period>;
335 std::chrono::days days = std::chrono::floor<std::chrono::days>(dur);
336 std::chrono::sys_days sysDays(days);
337 std::chrono::year_month_day ymd(sysDays);
346 ymd = 1970y / std::chrono::January / 1d;
347 dur = std::chrono::duration<IntType, Period>::zero();
349 else if (dur > SubType::max() - std::chrono::days(1))
352 ymd = 9999y / std::chrono::December / 31d;
353 dur = std::chrono::days(1) - SubType(1);
358 ymd = 9999y / std::chrono::December / 31d;
359 dur = std::chrono::days(1) - SubType(1);
364 ymd = 1970y / std::chrono::January / 1d;
372 std::chrono::hh_mm_ss<SubType> hms(dur);
374 return std::format("{}T{}+00:00", ymd, hms);
384 std::string getDateTimeUint(uint64_t secondsSinceEpoch) in getDateTimeUint()
386 using DurationType = std::chrono::duration<uint64_t>; in getDateTimeUint()
395 std::string getDateTimeUintMs(uint64_t milliSecondsSinceEpoch) in getDateTimeUintMs()
397 using DurationType = std::chrono::duration<uint64_t, std::milli>; in getDateTimeUintMs()
403 std::string getDateTimeUintUs(uint64_t microSecondsSinceEpoch) in getDateTimeUintUs()
405 using DurationType = std::chrono::duration<uint64_t, std::micro>; in getDateTimeUintUs()
410 std::string getDateTimeStdtime(std::time_t secondsSinceEpoch) in getDateTimeStdtime()
412 using DurationType = std::chrono::duration<std::time_t>; in getDateTimeStdtime()
426 std::pair<std::string, std::string> getDateTimeOffsetNow() in getDateTimeOffsetNow()
428 std::time_t time = std::time(nullptr); in getDateTimeOffsetNow()
429 std::string dateTime = getDateTimeStdtime(time); in getDateTimeOffsetNow()
434 std::string timeOffset("Z00:00"); in getDateTimeOffsetNow()
435 std::size_t lastPos = dateTime.size(); in getDateTimeOffsetNow()
436 std::size_t len = timeOffset.size(); in getDateTimeOffsetNow()
442 return std::make_pair(dateTime, timeOffset); in getDateTimeOffsetNow()
445 using usSinceEpoch = std::chrono::duration<int64_t, std::micro>;
457 std::optional<std::string> getDateTimeIso8601(std::string_view datetime) in getDateTimeIso8601()
459 std::optional<usSinceEpoch> us = dateStringToEpoch(datetime); in getDateTimeIso8601()
462 return std::nullopt; in getDateTimeIso8601()
465 std::chrono::duration_cast<std::chrono::seconds>(*us); in getDateTimeIso8601()
467 return std::make_optional( in getDateTimeIso8601()
474 void productionDateReport(crow::Response& res, const std::string& buildDate) in productionDateReport()
476 std::optional<std::string> valueStr = getDateTimeIso8601(buildDate); in productionDateReport()
485 std::optional<usSinceEpoch> dateStringToEpoch(std::string_view datetime) in dateStringToEpoch()
487 for (const char* format : std::to_array( in dateStringToEpoch()
491 std::chrono::sys_time<usSinceEpoch> date; in dateStringToEpoch()
492 std::istringstream iss(std::string{datetime}); in dateStringToEpoch()
494 namespace chrono_from_stream = std::chrono; in dateStringToEpoch()
502 return std::nullopt; in dateStringToEpoch()
512 return std::nullopt; in dateStringToEpoch()