qb  2.0.0.0
C++17 Actor Framework
qb Issue Watch Star Fork Follow @isndev
Loading...
Searching...
No Matches

High-precision timestamp and duration classes. More...

Collaboration diagram for Time Utilities:

Topics

 Time Utilities
 Utilities for handling and measuring time with high precision.

Files

file  timestamp.h
 High-precision timing utilities.

Classes

struct  std::hash< qb::Duration >
 Specialization of std::hash for qb::Duration. More...
struct  std::hash< qb::TimePoint >
 Specialization of std::hash for qb::TimePoint. More...

Typedefs

using qb::Timespan = Duration
 Backward compatibility alias for Duration.
using qb::Timestamp = TimePoint
 Backward compatibility alias for TimePoint.
using qb::UtcTimestamp = UtcTimePoint
 Backward compatibility alias for UtcTimePoint.
using qb::LocalTimestamp = LocalTimePoint
 Backward compatibility alias for LocalTimePoint.
using qb::NanoTimestamp = HighResTimePoint
 Backward compatibility alias for HighResTimePoint.
using qb::RdtsTimestamp = TscTimePoint
 Backward compatibility alias for TscTimePoint.

Functions

constexpr Duration qb::operator+ (const Duration &lhs, const Duration &rhs) noexcept
 Adds two durations.
constexpr Duration qb::operator- (const Duration &lhs, const Duration &rhs) noexcept
 Subtracts second duration from first.
constexpr Duration qb::operator* (const Duration &lhs, Duration::rep rhs) noexcept
 Multiplies a duration by a scalar value.
constexpr Duration qb::operator* (Duration::rep lhs, const Duration &rhs) noexcept
 Multiplies a scalar value by a duration.
constexpr Duration qb::operator/ (const Duration &lhs, Duration::rep rhs) noexcept
 Divides a duration by a scalar value.
constexpr Duration::rep qb::operator/ (const Duration &lhs, const Duration &rhs) noexcept
 Divides one duration by another.
constexpr Duration qb::operator% (const Duration &lhs, Duration::rep rhs) noexcept
 Calculates the remainder of dividing a duration by a scalar.
constexpr Duration qb::operator% (const Duration &lhs, const Duration &rhs) noexcept
 Calculates the remainder of dividing one duration by another.
constexpr Duration qb::literals::operator""_d (unsigned long long days) noexcept
 Creates a Duration from literal days.
constexpr Duration qb::literals::operator""_h (unsigned long long hours) noexcept
 Creates a Duration from literal hours.
constexpr Duration qb::literals::operator""_min (unsigned long long minutes) noexcept
 Creates a Duration from literal minutes.
constexpr Duration qb::literals::operator""_s (unsigned long long seconds) noexcept
 Creates a Duration from literal seconds.
constexpr Duration qb::literals::operator""_ms (unsigned long long milliseconds) noexcept
 Creates a Duration from literal milliseconds.
constexpr Duration qb::literals::operator""_us (unsigned long long microseconds) noexcept
 Creates a Duration from literal microseconds.
constexpr Duration qb::literals::operator""_ns (unsigned long long nanoseconds) noexcept
 Creates a Duration from literal nanoseconds.
TimePoint qb::operator+ (const TimePoint &lhs, const Duration &rhs) noexcept
 Adds a duration to a time point.
TimePoint qb::operator+ (const Duration &lhs, const TimePoint &rhs) noexcept
 Adds a time point to a duration.
TimePoint qb::operator- (const TimePoint &lhs, const Duration &rhs) noexcept
 Subtracts a duration from a time point.
Duration qb::operator- (const TimePoint &lhs, const TimePoint &rhs) noexcept
 Calculates the duration between two time points.
constexpr bool qb::operator== (const TimePoint &lhs, const TimePoint &rhs) noexcept
 Equality comparison for time points.
constexpr bool qb::operator!= (const TimePoint &lhs, const TimePoint &rhs) noexcept
 Inequality comparison for time points.
constexpr bool qb::operator< (const TimePoint &lhs, const TimePoint &rhs) noexcept
 Less than comparison for time points.
constexpr bool qb::operator<= (const TimePoint &lhs, const TimePoint &rhs) noexcept
 Less than or equal comparison for time points.
constexpr bool qb::operator> (const TimePoint &lhs, const TimePoint &rhs) noexcept
 Greater than comparison for time points.
constexpr bool qb::operator>= (const TimePoint &lhs, const TimePoint &rhs) noexcept
 Greater than or equal comparison for time points.
std::ostream & operator<< (std::ostream &os, const qb::TimePoint &tp)
 Stream insertion operator for TimePoint.
std::ostream & operator<< (std::ostream &os, const qb::Duration &d)
 Stream insertion operator for Duration.

Detailed Description

High-precision timestamp and duration classes.

Contains `qb::Timestamp` and `qb::Duration`.

Typedef Documentation

◆ Timespan

Backward compatibility alias for Duration.

Provided for compatibility with older code

◆ Timestamp

Backward compatibility alias for TimePoint.

Provided for compatibility with older code

◆ UtcTimestamp

Backward compatibility alias for UtcTimePoint.

Provided for compatibility with older code

◆ LocalTimestamp

Backward compatibility alias for LocalTimePoint.

Provided for compatibility with older code

◆ NanoTimestamp

Backward compatibility alias for HighResTimePoint.

Provided for compatibility with older code

◆ RdtsTimestamp

Backward compatibility alias for TscTimePoint.

Provided for compatibility with older code

Function Documentation

◆ operator+() [1/3]

Duration qb::operator+ ( const Duration & lhs,
const Duration & rhs )
constexprnoexcept

Adds two durations.

Parameters
lhsFirst duration
rhsSecond duration
Returns
New duration equal to lhs + rhs

◆ operator-() [1/3]

Duration qb::operator- ( const Duration & lhs,
const Duration & rhs )
constexprnoexcept

Subtracts second duration from first.

Parameters
lhsFirst duration
rhsSecond duration
Returns
New duration equal to lhs - rhs

◆ operator*() [1/2]

Duration qb::operator* ( const Duration & lhs,
Duration::rep rhs )
constexprnoexcept

Multiplies a duration by a scalar value.

Parameters
lhsDuration
rhsScalar multiplier
Returns
Duration scaled by rhs

◆ operator*() [2/2]

Duration qb::operator* ( Duration::rep lhs,
const Duration & rhs )
constexprnoexcept

Multiplies a scalar value by a duration.

Parameters
lhsScalar multiplier
rhsDuration
Returns
Duration scaled by lhs

◆ operator/() [1/2]

Duration qb::operator/ ( const Duration & lhs,
Duration::rep rhs )
constexprnoexcept

Divides a duration by a scalar value.

Parameters
lhsDuration
rhsScalar divisor
Returns
Duration divided by rhs

◆ operator/() [2/2]

Duration::rep qb::operator/ ( const Duration & lhs,
const Duration & rhs )
constexprnoexcept

Divides one duration by another.

Parameters
lhsNumerator duration
rhsDenominator duration
Returns
Scalar ratio of lhs to rhs

◆ operator%() [1/2]

Duration qb::operator% ( const Duration & lhs,
Duration::rep rhs )
constexprnoexcept

Calculates the remainder of dividing a duration by a scalar.

Parameters
lhsDuration
rhsScalar divisor
Returns
Duration representing the remainder

◆ operator%() [2/2]

Duration qb::operator% ( const Duration & lhs,
const Duration & rhs )
constexprnoexcept

Calculates the remainder of dividing one duration by another.

Parameters
lhsNumerator duration
rhsDenominator duration
Returns
Duration representing the remainder

◆ operator""_d()

Duration qb::literals::operator""_d ( unsigned long long days)
constexprnoexcept

Creates a Duration from literal days.

Parameters
daysNumber of days
Returns
Duration object representing the specified days

◆ operator""_h()

Duration qb::literals::operator""_h ( unsigned long long hours)
constexprnoexcept

Creates a Duration from literal hours.

Parameters
hoursNumber of hours
Returns
Duration object representing the specified hours

◆ operator""_min()

Duration qb::literals::operator""_min ( unsigned long long minutes)
constexprnoexcept

Creates a Duration from literal minutes.

Parameters
minutesNumber of minutes
Returns
Duration object representing the specified minutes

◆ operator""_s()

Duration qb::literals::operator""_s ( unsigned long long seconds)
constexprnoexcept

Creates a Duration from literal seconds.

Parameters
secondsNumber of seconds
Returns
Duration object representing the specified seconds

◆ operator""_ms()

Duration qb::literals::operator""_ms ( unsigned long long milliseconds)
constexprnoexcept

Creates a Duration from literal milliseconds.

Parameters
millisecondsNumber of milliseconds
Returns
Duration object representing the specified milliseconds

◆ operator""_us()

Duration qb::literals::operator""_us ( unsigned long long microseconds)
constexprnoexcept

Creates a Duration from literal microseconds.

Parameters
microsecondsNumber of microseconds
Returns
Duration object representing the specified microseconds

◆ operator""_ns()

Duration qb::literals::operator""_ns ( unsigned long long nanoseconds)
constexprnoexcept

Creates a Duration from literal nanoseconds.

Parameters
nanosecondsNumber of nanoseconds
Returns
Duration object representing the specified nanoseconds

◆ operator+() [2/3]

TimePoint qb::operator+ ( const TimePoint & lhs,
const Duration & rhs )
inlinenoexcept

Adds a duration to a time point.

Parameters
lhsThe time point
rhsThe duration to add
Returns
A new time point equal to lhs + rhs

◆ operator+() [3/3]

TimePoint qb::operator+ ( const Duration & lhs,
const TimePoint & rhs )
inlinenoexcept

Adds a time point to a duration.

Parameters
lhsThe duration
rhsThe time point
Returns
A new time point equal to rhs + lhs

◆ operator-() [2/3]

TimePoint qb::operator- ( const TimePoint & lhs,
const Duration & rhs )
inlinenoexcept

Subtracts a duration from a time point.

Parameters
lhsThe time point
rhsThe duration to subtract
Returns
A new time point equal to lhs - rhs

◆ operator-() [3/3]

Duration qb::operator- ( const TimePoint & lhs,
const TimePoint & rhs )
inlinenoexcept

Calculates the duration between two time points.

Parameters
lhsThe later time point
rhsThe earlier time point
Returns
The duration between the two time points (lhs - rhs)

◆ operator==()

bool qb::operator== ( const TimePoint & lhs,
const TimePoint & rhs )
constexprnoexcept

Equality comparison for time points.

Parameters
lhsFirst time point
rhsSecond time point
Returns
true if the time points are equal, false otherwise

◆ operator!=()

bool qb::operator!= ( const TimePoint & lhs,
const TimePoint & rhs )
constexprnoexcept

Inequality comparison for time points.

Parameters
lhsFirst time point
rhsSecond time point
Returns
true if the time points are not equal, false otherwise

◆ operator<()

bool qb::operator< ( const TimePoint & lhs,
const TimePoint & rhs )
constexprnoexcept

Less than comparison for time points.

Parameters
lhsFirst time point
rhsSecond time point
Returns
true if lhs is earlier than rhs, false otherwise

◆ operator<=()

bool qb::operator<= ( const TimePoint & lhs,
const TimePoint & rhs )
constexprnoexcept

Less than or equal comparison for time points.

Parameters
lhsFirst time point
rhsSecond time point
Returns
true if lhs is earlier than or equal to rhs, false otherwise

◆ operator>()

bool qb::operator> ( const TimePoint & lhs,
const TimePoint & rhs )
constexprnoexcept

Greater than comparison for time points.

Parameters
lhsFirst time point
rhsSecond time point
Returns
true if lhs is later than rhs, false otherwise

◆ operator>=()

bool qb::operator>= ( const TimePoint & lhs,
const TimePoint & rhs )
constexprnoexcept

Greater than or equal comparison for time points.

Parameters
lhsFirst time point
rhsSecond time point
Returns
true if lhs is later than or equal to rhs, false otherwise

◆ operator<<() [1/2]

std::ostream & operator<< ( std::ostream & os,
const qb::TimePoint & tp )
inline

Stream insertion operator for TimePoint.

Parameters
osOutput stream
tpTimePoint to output
Returns
Reference to the output stream

◆ operator<<() [2/2]

std::ostream & operator<< ( std::ostream & os,
const qb::Duration & d )
inline

Stream insertion operator for Duration.

Parameters
osOutput stream
dDuration to output
Returns
Reference to the output stream