27 #ifndef EMBB_BASE_DURATION_H_ 28 #define EMBB_BASE_DURATION_H_ 30 #include <embb/base/c/duration.h> 31 #include <embb/base/exceptions.h> 56 template<
typename Tick>
92 unsigned long long ticks
118 unsigned long long Count()
const;
165 template<
typename Tick>
182 template<
typename Tick>
199 template<
typename Tick>
216 template<
typename Tick>
233 template<
typename Tick>
250 template<
typename Tick>
267 template<
typename Tick>
288 static void CheckExceptions(
302 class Seconds :
public Tick {
312 unsigned long long ticks
319 static void SetAndCheck(
322 unsigned long long ticks
331 static unsigned long long Get(
341 static unsigned long long Min();
348 static unsigned long long Max();
357 class Milliseconds :
public Tick {
368 unsigned long long ticks
375 static void SetAndCheck(
378 unsigned long long ticks
387 static unsigned long long Get(
398 static unsigned long long Min();
406 static unsigned long long Max();
415 class Microseconds :
public Tick {
426 unsigned long long ticks
433 static void SetAndCheck(
436 unsigned long long ticks
445 static unsigned long long Get(
456 static unsigned long long Min();
464 static unsigned long long Max();
473 class Nanoseconds :
public Tick {
484 unsigned long long ticks
491 static void SetAndCheck(
494 unsigned long long ticks
503 static unsigned long long Get(
514 static unsigned long long Min();
522 static unsigned long long Max();
555 #include <embb/base/internal/duration-inl.h> 557 #endif // EMBB_BASE_DURATION_H_ Definition: lock_free_mpmc_queue.h:40
Duration()
Constructs a duration of length zero.
Duration< Tick > & operator+=(const Duration< Tick > &rhs)
Assignment by addition of another duration with same tick type.
bool operator<(const Duration< Tick > &lhs, const Duration< Tick > &rhs)
Compares two durations (less than)
Definition: duration.h:200
Duration< internal::Microseconds > DurationMicroseconds
Duration with microseconds tick.
Definition: duration.h:544
int embb_duration_compare(const embb_duration_t *lhs, const embb_duration_t *rhs)
Compares two durations.
Duration< internal::Seconds > DurationSeconds
Duration with seconds tick.
Definition: duration.h:532
static const Duration< Tick > & Min()
Returns duration with minimum ticks representable by implementation.
static const Duration< Tick > & Zero()
Returns duration of length zero.
static const Duration< Tick > & Max()
Returns duration with maximum ticks representable by implementation.
Represents a relative time duration for a given tick type.
Definition: duration.h:57
unsigned long long Count() const
Returns the number of ticks of the duration.
Duration< internal::Milliseconds > DurationMilliseconds
Duration with milliseconds tick.
Definition: duration.h:538
bool operator!=(const Duration< Tick > &lhs, const Duration< Tick > &rhs)
Compares two durations (inequality).
Definition: duration.h:183
Represents a condition variable for thread synchronization.
Definition: condition_variable.h:56
Duration< Tick > operator+(const Duration< Tick > &lhs, const Duration< Tick > &rhs)
Adds two durations.
Definition: duration.h:268
bool operator>=(const Duration< Tick > &lhs, const Duration< Tick > &rhs)
Compares two durations (greater than or equal to)
Definition: duration.h:251
bool operator>(const Duration< Tick > &lhs, const Duration< Tick > &rhs)
Compares two durations (greater than)
Definition: duration.h:217
opaque_type embb_duration_t
Opaque type representing a relative time duration.
Definition: duration.h:52
Duration< internal::Nanoseconds > DurationNanoseconds
Duration with nanoseconds tick.
Definition: duration.h:550
bool operator<=(const Duration< Tick > &lhs, const Duration< Tick > &rhs)
Compares two durations (less than or equal to)
Definition: duration.h:234
Duration< Tick > & operator=(const Duration< Tick > &to_assign)
Assigns an existing duration.
Represents an absolute time point.
Definition: time.h:41
bool operator==(const Duration< Tick > &lhs, const Duration< Tick > &rhs)
Compares two durations (equality).
Definition: duration.h:166