asio C++ library

PrevUpHomeNext

Wait traits requirements

The basic_waitable_timer template uses wait traits to allow programs to customize wait and async_wait behavior. [Note: Possible uses of wait traits include:
— To enable timers based on non-realtime clocks.
— Determining how quickly wallclock-based timers respond to system time changes.
— Correcting for errors or rounding timeouts to boundaries.
— Preventing duration overflow. That is, a program may set a timer's expiry e to be Clock::max() (meaning never reached) or Clock::min() (meaning always in the past). As a result, computing the duration until timer expiry as e - Clock::now() may cause overflow. —end note]

For a type Clock meeting the Clock requirements (C++Std [time.clock.req]), a type X meets the WaitTraits requirements if it satisfies the requirements listed below.

In the table below, t denotes a (possibly const) value of type Clock::time_point; and d denotes a (possibly const) value of type Clock::duration.

Table 33. WaitTraits requirements

expression

return type

assertion/note
pre/post-condition

X::to_wait_duration(d)

Clock::duration

Returns a Clock::duration value to be used in a wait or async_wait operation. [Note: The return value is typically representative of the duration d. —end note]

X::to_wait_duration(t)

Clock::duration

Returns a Clock::duration value to be used in a wait or async_wait operation. [Note: The return value is typically representative of the duration from Clock::now() until the time point t. —end note]



PrevUpHomeNext