4inline millis operator -(const ::millis& millis1, const ::millis& millis2);
5inline millis operator +(const ::millis& millis1, const ::millis& millis2);
21inline double __double(const ::millis &
millis);
28class CLASS_DECL_ACME millis
37 millis(
enum enum_now);
40 template < primitive_
integral INTEGRAL >
41 millis(INTEGRAL i) { m_i = i; }
43 millis(
const secs & secs) { m_i = secs.m_i * 1'000; }
44 millis(
const millis & millis) { m_i = millis.m_i; }
45 millis(
const micros & micros);
46 millis(
const nanos & nanos);
49 millis & operator = (
const millis & millis) { m_i = millis.m_i;
return *
this; }
51 inline static millis now();
53 inline static millis infinite() {
return {-1}; }
55 inline bool is_infinite()
const {
return m_i < 0; }
57 inline bool is_infinity()
const {
return m_i < 0; }
59 inline bool timeout(
const millis& tickTimeout);
61 inline ::millis remaining(
const millis & millisTimeout)
64 auto millisNow = now();
66 auto millisRemaining = millisTimeout - millisNow + *
this;
68 return millisRemaining;
73 inline bool done(const ::millis & millis)
const;
74 inline bool done()
const;
77 inline millis elapsed(const ::millis & millis)
const
80 return millis.m_i - m_i;
85 inline double sawtooth(const ::millis & tickPeriod)
88 return __double(elapsed() % tickPeriod) / __double(tickPeriod);
93 inline double period_rate(const ::millis & tickPeriod)
96 return __double(elapsed()) / __double(tickPeriod);
101 inline millis elapsed()
const
104 return elapsed(now());
109 inline unsigned int unsigned int()
const
112 return (
unsigned int) (m_i % 0x100000000ULL);
116 inline long long seconds()
const {
return m_i / 1000; }
134 inline bool on_off(const ::millis & period)
const
137 return (elapsed().m_i % period.m_i) < period.m_i >> 1;
143 inline bool on_off(const ::millis & period,
double dRate)
const
146 return (elapsed().m_i % period.m_i) < period.m_i * dRate;
171 inline millis& operator -= (const ::millis & millis) { m_i -= millis.m_i;
return *
this; }
172 inline millis& operator += (const ::millis & millis) { m_i += millis.m_i;
return *
this; }
187 inline millis& operator *= (
double d) { m_i = (
long long)(m_i * d);
return *
this; }
189 inline long long operator / (
const millis& millis)
const {
return m_i / millis.m_i; }
190 inline millis& operator /= (
long long i) { m_i /= i;
return *
this; }
191 inline millis& operator %= (
const millis & millis) { m_i %= millis.m_i;
return *
this; }
194 inline millis operator % (
int i)
const {
return m_i % i; }
195 inline millis operator % (
long long i)
const {
return m_i % i; }
196 inline millis operator % (const ::millis & millis)
const {
return m_i % millis.m_i; }
28class CLASS_DECL_ACME millis {
…};
216 template <
typename TYPE >
217 inline TYPE default_value();
220 inline unsigned int default_value < unsigned int >()
227 inline millis default_value < millis >();
240#define __prtick "%" PRtick " ms"
243#define U32_INFINITE_TIMEOUT ((unsigned int)0xffffffffu)
246inline double __double(const ::millis &
millis) {
return (
double)
millis.m_i; }
249inline auto __pr(const ::millis &
millis) {
return millis.m_i; }
252inline unsigned int __os(const ::millis &
millis)
255 if (
millis.m_i > (
long long) I32_MAXIMUM)
258 return U32_INFINITE_TIMEOUT;
270 return (
unsigned int)
millis.m_i;
276inline int __int(const ::millis &
millis) {
return (
int)
millis.m_i; }
279inline long long __long_long(const ::millis &
millis) {
return (
long long)
millis.m_i; }
282inline unsigned char as_byte(const ::millis &
millis) {
return (
unsigned char) minimummax(
millis.m_i, 0, 255); }
285inline millis __tick(
double d) {
return (
long long) d; }
288inline millis operator "" _tick(
unsigned long long u) {
return u; }
294typedef CLASS_DECL_ACME numeric_array < millis > millis_array;
303inline millis operator "" _ms(
unsigned long long u) {
return (
long long) u; }
306inline millis operator -(const ::millis& millis1, const ::millis& millis2)
309 return millis1.m_i - millis2.m_i;
314inline millis operator +(const ::millis& millis1, const ::millis& millis2)
317 return millis1.m_i + millis2.m_i;
325template < primitive_number NUMBER >
334template < primitive_number NUMBER >
346inline long long _first_milli();
347inline long long _get_millis();
348inline double _millis() {
return _get_nanos() / 1'000'000.0; }
351inline ::millis first_milli() {
return _first_milli(); }
352inline ::millis get_millis() {
return _get_millis(); }
#include "aura/graphics/image/context.h"
Definition aaaa__defer.h:32
Definition _structures.h:47