ORIGINAL
Loading...
Searching...
No Matches
original::time::duration Class Referencefinal

Represents a time duration with nanosecond precision. More...

#include <zeit.h>

Inheritance diagram for original::time::duration:
Inheritance graph
Collaboration diagram for original::time::duration:
Collaboration graph

Public Member Functions

 duration (time_val_type val=0, unit unit=MILLISECOND)
 Constructs a duration with given value and unit.
 
 duration (const duration &other)=default
 Default copy constructor.
 
durationoperator= (const duration &other)=default
 Default copy assignment.
 
 duration (duration &&other) noexcept
 Move constructor.
 
durationoperator= (duration &&other) noexcept
 Move assignment.
 
time_val_type value (unit unit=MILLISECOND) const
 Gets the duration value in specified units.
 
integer compareTo (const duration &other) const override
 Compares this duration to another.
 
u_integer toHash () const noexcept override
 Computes hash value for this duration.
 
std::string className () const override
 Gets the class name.
 
std::string toString (bool enter) const override
 Converts duration to string representation.
 
durationoperator++ ()
 Prefix increment (adds 1 nanosecond)
 
duration operator++ (int postfix)
 Postfix increment (adds 1 nanosecond)
 
durationoperator-- ()
 Prefix decrement (subtracts 1 nanosecond)
 
duration operator-- (int postfix)
 Postfix decrement (subtracts 1 nanosecond)
 
durationoperator+= (const duration &other)
 Adds another duration to this one.
 
durationoperator-= (const duration &other)
 Subtracts another duration from this one.
 
durationoperator*= (time_val_type factor)
 Multiplies duration by a factor.
 
durationoperator/= (time_val_type factor)
 Divides duration by a factor.
 
durationoperator/= (const duration &other)
 Divides duration by another duration.
 
floating div (time_val_type factor, unit unit=MILLISECOND) const
 Floating-point division by a factor.
 
floating div (const duration &other) const
 Floating-point division by another duration.
 
- Public Member Functions inherited from original::comparable< duration >
virtual integer compareTo (const duration &other) const=0
 Compares the current object with another of the same type.
 
bool operator== (const duration &other) const
 Checks if the current object is equal to another.
 
bool operator!= (const duration &other) const
 Checks if the current object is not equal to another.
 
bool operator< (const duration &other) const
 Checks if the current object is less than another.
 
bool operator> (const duration &other) const
 Checks if the current object is greater than another.
 
bool operator<= (const duration &other) const
 Checks if the current object is less than or equal to another.
 
bool operator>= (const duration &other) const
 Checks if the current object is greater than or equal to another.
 
virtual ~comparable ()=default
 Virtual destructor for proper cleanup of derived objects.
 
- Public Member Functions inherited from original::hashable< duration >
virtual bool equals (const duration &other) const noexcept
 Compares two objects for equality.
 
virtual ~hashable ()=0
 Virtual destructor.
 
- Public Member Functions inherited from original::printable
 operator std::string () const
 Explicit conversion to std::string.
 
 operator const char * () const
 Explicit conversion to C-style string.
 
const char * toCString (bool enter) const
 Direct C-string access with formatting control.
 
template<typename TYPE >
auto formatString (const TYPE &t) -> std::string
 
template<typename TYPE >
auto formatCString (const TYPE &t) -> const char *
 
template<typename TYPE >
auto formatEnum (const TYPE &t) -> std::string
 
template<typename TYPE >
auto formatString (TYPE *const &ptr) -> std::string
 

Static Public Attributes

static const duration ZERO = duration{}
 Zero duration constant.
 

Friends

class point
 
duration operator- (const duration &d)
 Negation operator.
 
duration operator+ (const duration &lhs, const duration &rhs)
 Addition operator.
 
duration operator- (const duration &lhs, const duration &rhs)
 Subtraction operator.
 
duration operator* (const duration &d, time::time_val_type factor)
 Multiplication operator (duration * factor)
 
duration operator* (time::time_val_type factor, const duration &d)
 Multiplication operator (factor * duration)
 
duration operator/ (const duration &d, time::time_val_type factor)
 Division operator (duration / factor)
 
duration operator/ (const duration &lhs, const duration &rhs)
 Division operator (duration / duration)
 
duration abs (const duration &d)
 Absolute value of duration.
 

Additional Inherited Members

- Static Public Member Functions inherited from original::printable
template<typename TYPE >
static std::string formatString (const TYPE &t)
 Universal value-to-string conversion.
 
template<Printable TYPE>
static std::string formatString (const TYPE &t)
 Specialization for printable types.
 
template<EnumType TYPE>
static std::string formatString (const TYPE &t)
 Specialization for enum types.
 
template<typename TYPE >
static std::string formatString (TYPE *const &ptr)
 Pointer-specific formatting.
 
template<typename TYPE >
static const char * formatCString (const TYPE &t)
 C-string cache for temporary usage.
 
template<typename TYPE >
static std::string formatEnum (const TYPE &t)
 Enum formatting utility.
 
template<>
auto formatString (const char &t) -> std::string
 
template<>
auto formatString (const bool &t) -> std::string
 
template<>
auto formatString (const char *const &ptr) -> std::string
 

Detailed Description

Represents a time duration with nanosecond precision.

Supports arithmetic operations and conversions between different time units.

Constructor & Destructor Documentation

◆ duration() [1/2]

original::time::duration::duration ( time_val_type val = 0,
unit unit = MILLISECOND )
inlineexplicit

Constructs a duration with given value and unit.

Parameters
valTime value
unitUnit of time (default: MILLISECOND)

◆ duration() [2/2]

original::time::duration::duration ( duration && other)
inlinenoexcept

Move constructor.

Parameters
otherDuration to move from

Member Function Documentation

◆ className()

std::string original::time::duration::className ( ) const
inlineoverridevirtual

Gets the class name.

Returns
"time::duration"

Reimplemented from original::printable.

◆ compareTo()

original::integer original::time::duration::compareTo ( const duration & other) const
inlinenodiscardoverride

Compares this duration to another.

Parameters
otherDuration to compare with
Returns
Negative if this < other, 0 if equal, positive if this > other

◆ div() [1/2]

original::floating original::time::duration::div ( const duration & other) const
inlinenodiscard

Floating-point division by another duration.

Parameters
otherDuration to divide by
Returns
Floating-point result

◆ div() [2/2]

original::floating original::time::duration::div ( time_val_type factor,
unit unit = MILLISECOND ) const
inlinenodiscard

Floating-point division by a factor.

Parameters
factorDivision factor
unitUnit for factor (default: MILLISECOND)
Returns
Floating-point result

◆ operator*=()

original::time::duration & original::time::duration::operator*= ( time_val_type factor)
inline

Multiplies duration by a factor.

Parameters
factorMultiplication factor
Returns
Reference to modified duration

◆ operator++() [1/2]

original::time::duration & original::time::duration::operator++ ( )
inline

Prefix increment (adds 1 nanosecond)

Returns
Reference to modified duration

◆ operator++() [2/2]

original::time::duration original::time::duration::operator++ ( int postfix)
inline

Postfix increment (adds 1 nanosecond)

Parameters
postfixDummy parameter for postfix
Returns
Copy of duration before increment

◆ operator+=()

original::time::duration & original::time::duration::operator+= ( const duration & other)
inline

Adds another duration to this one.

Parameters
otherDuration to add
Returns
Reference to modified duration

◆ operator--() [1/2]

original::time::duration & original::time::duration::operator-- ( )
inline

Prefix decrement (subtracts 1 nanosecond)

Returns
Reference to modified duration

◆ operator--() [2/2]

original::time::duration original::time::duration::operator-- ( int postfix)
inline

Postfix decrement (subtracts 1 nanosecond)

Parameters
postfixDummy parameter for postfix
Returns
Copy of duration before decrement

◆ operator-=()

original::time::duration & original::time::duration::operator-= ( const duration & other)
inline

Subtracts another duration from this one.

Parameters
otherDuration to subtract
Returns
Reference to modified duration

◆ operator/=() [1/2]

original::time::duration & original::time::duration::operator/= ( const duration & other)
inline

Divides duration by another duration.

Parameters
otherDuration to divide by
Returns
Reference to modified duration

◆ operator/=() [2/2]

original::time::duration & original::time::duration::operator/= ( time_val_type factor)
inline

Divides duration by a factor.

Parameters
factorDivision factor
Returns
Reference to modified duration

◆ operator=()

original::time::duration & original::time::duration::operator= ( duration && other)
inlinenoexcept

Move assignment.

Parameters
otherDuration to move from
Returns
Reference to this duration

◆ toHash()

original::u_integer original::time::duration::toHash ( ) const
inlineoverridevirtualnoexcept

Computes hash value for this duration.

Returns
Hash value

Reimplemented from original::hashable< duration >.

◆ toString()

std::string original::time::duration::toString ( bool enter) const
inlineoverridevirtual

Converts duration to string representation.

Parameters
enterWhether to include newline
Returns
String representation

Reimplemented from original::printable.

◆ value()

original::time::time_val_type original::time::duration::value ( unit unit = MILLISECOND) const
inlinenodiscard

Gets the duration value in specified units.

Parameters
unitUnit to return value in (default: MILLISECOND)
Returns
Duration value in requested units

Friends And Related Symbol Documentation

◆ abs

duration abs ( const duration & d)
friend

Absolute value of duration.

Parameters
dDuration to get absolute value of
Returns
Absolute duration

◆ operator* [1/2]

duration operator* ( const duration & d,
time::time_val_type factor )
friend

Multiplication operator (duration * factor)

Parameters
dDuration to multiply
factorMultiplication factor
Returns
Product of duration and factor

◆ operator* [2/2]

duration operator* ( time::time_val_type factor,
const duration & d )
friend

Multiplication operator (factor * duration)

Parameters
factorMultiplication factor
dDuration to multiply
Returns
Product of factor and duration

◆ operator+

duration operator+ ( const duration & lhs,
const duration & rhs )
friend

Addition operator.

Parameters
lhsLeft operand
rhsRight operand
Returns
Sum of durations

◆ operator- [1/2]

duration operator- ( const duration & d)
friend

Negation operator.

Parameters
dDuration to negate
Returns
Negated duration

◆ operator- [2/2]

duration operator- ( const duration & lhs,
const duration & rhs )
friend

Subtraction operator.

Parameters
lhsLeft operand
rhsRight operand
Returns
Difference of durations

◆ operator/ [1/2]

duration operator/ ( const duration & d,
time::time_val_type factor )
friend

Division operator (duration / factor)

Parameters
dDuration to divide
factorDivision factor
Returns
Quotient of duration and factor

◆ operator/ [2/2]

duration operator/ ( const duration & lhs,
const duration & rhs )
friend

Division operator (duration / duration)

Parameters
lhsLeft operand
rhsRight operand
Returns
Quotient of durations

The documentation for this class was generated from the following file: