llarp/util/time.hpp
Namespaces
| Name |
|---|
| llarp [crypto.hpp] |
| std::chrono_literals |
Types
| Name | |
|---|---|
| using timespec | llarp_timespec |
Types Documentation
using llarp_timespec
using llarp_timespec = timespec;
Source code
#pragma once
#include "types.hpp"
#include <iostream>
#include <fmt/format.h>
#include <fmt/chrono.h>
#ifdef __linux__
#include <linux/time_types.h>
using llarp_timespec = __kernel_timespec;
#else
#include <ctime>
using llarp_timespec = timespec;
#endif
using namespace std::chrono_literals;
namespace llarp
{
Duration_t
time_now_ms();
Duration_t
uptime();
llarp_timespec as_timespec(Duration_t);
timespec to_timespec(Duration_t);
uint64_t
ToMS(Duration_t duration);
// Returns a string such as "27m13s ago" or "in 1h12m" or "now". You get precision of minutes
// (for >=1h), seconds (>=10s), or milliseconds. The `now_threshold` argument controls how close
// to current time (default 1s) the time has to be to get the "now" argument.
std::string
short_time_from_now(const TimePoint_t& t, const Duration_t& now_threshold = 1s);
// Makes a duration human readable. This always has full millisecond precision, but formats up to
// hours. E.g. "-4h04m12.123s" or "1234h00m09.876s.
std::string
ToString(Duration_t t);
} // namespace llarp
// Duration_t is currently just a typedef to std::chrono::milliseconds, and specializing
// that seems wrong; leaving this here to remind us not to add it back in again.
// namespace fmt
//{
// template <>
// struct formatter<llarp::Duration_t>
// {
// };
//} // namespace fmt
Updated on 2026-01-10 at 22:49:46 +0000