HoverRace  2.0
Public Types | Public Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
HoverRace::Util::Duration Class Reference

The relative time between two timestamps. More...

#include <Duration.h>

+ Inheritance diagram for HoverRace::Util::Duration:

Public Types

using dur_t = MR_Int64
 

Public Member Functions

constexpr Duration (OS::timestamp_t later, OS::timestamp_t earlier) noexcept
 Constructor from two timestamps. More...
 
constexpr Duration (const Duration &later, const Duration &earlier) noexcept
 Constructor from two durations. More...
 
constexpr Duration (dur_t duration=0) noexcept
 Constructor. More...
 
 Duration (const std::string &s)
 
template<class T >
 Duration (const T *s)
 
constexpr Duration (const Duration &) noexcept=default
 
constexpr Duration (Duration &&) noexcept=default
 
template<>
 Duration (const char *s)
 
std::ostream & FmtLong (std::ostream &os) const
 Stream out the full-length format. More...
 
std::string FmtLong () const
 Convert to string using the full-length format. More...
 
std::ostream & FmtShort (std::ostream &os) const
 Stream out the short format. More...
 
std::string FmtShort () const
 Convert to string using the short format. More...
 
constexpr Duration operator- () const noexcept
 
Durationoperator= (const Duration &) noexcept=default
 
Durationoperator= (Duration &&) noexcept=default
 
constexpr dur_t ToMs () const noexcept
 Convert the duration to milliseconds. More...
 

Static Private Member Functions

static dur_t ParseDuration (const std::string &s)
 Parse a duration from a string. More...
 

Private Attributes

dur_t duration
 

Friends

constexpr bool operator< (const Duration &a, const Duration &b) noexcept
 
constexpr bool operator< (const Duration &duration, Duration::dur_t ts) noexcept
 
constexpr bool operator< (Duration::dur_t ts, const Duration &duration) noexcept
 
constexpr bool operator== (const Duration &a, const Duration &b) noexcept
 
constexpr bool operator== (const Duration &duration, Duration::dur_t ts) noexcept
 
constexpr bool operator== (Duration::dur_t ts, const Duration &duration) noexcept
 

Detailed Description

The relative time between two timestamps.

Unlike OS::timestamp_t, this can represent negative times.

Author
Michael Imamura

Member Typedef Documentation

Constructor & Destructor Documentation

constexpr HoverRace::Util::Duration::Duration ( OS::timestamp_t  later,
OS::timestamp_t  earlier 
)
inlinenoexcept

Constructor from two timestamps.

Parameters
laterThe later of the two timestamps.
earlierThe earlier of the two timestamps.
constexpr HoverRace::Util::Duration::Duration ( const Duration later,
const Duration earlier 
)
inlinenoexcept

Constructor from two durations.

Parameters
laterThe later of the two durations.
earlierThe earlier of the two durations.
constexpr HoverRace::Util::Duration::Duration ( dur_t  duration = 0)
inlinenoexcept

Constructor.

Parameters
durationThe time in milliseconds.
HoverRace::Util::Duration::Duration ( const std::string &  s)
inline
template<class T >
HoverRace::Util::Duration::Duration ( const T *  s)
constexpr HoverRace::Util::Duration::Duration ( const Duration )
defaultnoexcept
constexpr HoverRace::Util::Duration::Duration ( Duration &&  )
defaultnoexcept
template<>
HoverRace::Util::Duration::Duration ( const char *  s)
inline

Member Function Documentation

std::ostream & HoverRace::Util::Duration::FmtLong ( std::ostream &  os) const

Stream out the full-length format.

The format is: hours:minutes:seconds.milliseconds

Parameters
osThe output stream.
Returns
The same output stream.
std::string HoverRace::Util::Duration::FmtLong ( ) const

Convert to string using the full-length format.

The format is: hours:minutes:seconds.milliseconds

Returns
The formatted string.
std::ostream & HoverRace::Util::Duration::FmtShort ( std::ostream &  os) const

Stream out the short format.

The format is the same as the long format, but leading zero components are ignored.

Parameters
osThe output stream.
Returns
The same output stream.
std::string HoverRace::Util::Duration::FmtShort ( ) const

Convert to string using the short format.

The format is the same as the long format, but leading zero components are ignored.

Returns
The formatted string.
constexpr Duration HoverRace::Util::Duration::operator- ( ) const
inlinenoexcept
Duration& HoverRace::Util::Duration::operator= ( const Duration )
defaultnoexcept
Duration& HoverRace::Util::Duration::operator= ( Duration &&  )
defaultnoexcept
Duration::dur_t HoverRace::Util::Duration::ParseDuration ( const std::string &  s)
staticprivate

Parse a duration from a string.

Example strings:

  • "300" or "300ms" - 300 milliseconds.
  • "4s" - 4 seconds.
  • "12m" - 12 minutes.
Parameters
sThe duration.
Returns
The parsed duration.
Exceptions
ExceptionThe duration could not be parsed.
constexpr dur_t HoverRace::Util::Duration::ToMs ( ) const
inlinenoexcept

Convert the duration to milliseconds.

Returns
This duration.

Friends And Related Function Documentation

constexpr bool operator< ( const Duration a,
const Duration b 
)
friend
constexpr bool operator< ( const Duration duration,
Duration::dur_t  ts 
)
friend
constexpr bool operator< ( Duration::dur_t  ts,
const Duration duration 
)
friend
constexpr bool operator== ( const Duration a,
const Duration b 
)
friend
constexpr bool operator== ( const Duration duration,
Duration::dur_t  ts 
)
friend
constexpr bool operator== ( Duration::dur_t  ts,
const Duration duration 
)
friend

Member Data Documentation

dur_t HoverRace::Util::Duration::duration
private

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