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

High-precision timing utilities. More...

#include <chrono>
#include <cstdint>
#include <ratio>
#include <string>
#include <string_view>
#include <type_traits>
#include <utility>
#include <iomanip>
#include <array>
#include <optional>
#include <functional>
#include <thread>
#include <qb/io.h>
Include dependency graph for timestamp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  qb::Duration
 Represents a duration with nanosecond precision. More...
class  qb::TimePoint
 Represents a point in time with nanosecond precision. More...
class  qb::UtcTimePoint
 Represents a UTC time point with nanosecond precision. More...
class  qb::LocalTimePoint
 Represents a local time point with nanosecond precision. More...
class  qb::HighResTimePoint
 Represents a high-resolution time point. More...
class  qb::TscTimePoint
 Represents a time point based on CPU's timestamp counter. More...
class  qb::ScopedTimer
 Utility for measuring code block execution time. More...
class  qb::LogTimer
 Utility for logging execution time of code blocks. More...
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 timing utilities.

This file provides a set of classes for precise time handling, measurement, and representation. It includes platform-independent implementations for time spans and timestamps with nanosecond precision.

Author
qb - C++ Actor Framework

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.