Insane_DNS/libraries/asio-1.28.1/doc/asio/reference/WaitTraits.html

137 lines
8.1 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Wait traits requirements</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="WaitToken.html" title="Wait token requirements">
<link rel="next" href="WriteHandler.html" title="Write handler requirements">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="asio C++ library" width="250" height="60" src="../../asio.png"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="WaitToken.html"><img src="../../prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../home.png" alt="Home"></a><a accesskey="n" href="WriteHandler.html"><img src="../../next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="asio.reference.WaitTraits"></a><a class="link" href="WaitTraits.html" title="Wait traits requirements">Wait traits requirements</a>
</h3></div></div></div>
<p>
The <code class="computeroutput"><span class="identifier">basic_waitable_timer</span></code>
template uses wait traits to allow programs to customize <code class="computeroutput"><span class="identifier">wait</span></code>
and <code class="computeroutput"><span class="identifier">async_wait</span></code> behavior.
[<span class="emphasis"><em>Note:</em></span> Possible uses of wait traits include:<br> — To
enable timers based on non-realtime clocks.<br> — Determining how quickly
wallclock-based timers respond to system time changes.<br> — Correcting for
errors or rounding timeouts to boundaries.<br> — Preventing duration overflow.
That is, a program may set a timer's expiry <code class="computeroutput"><span class="identifier">e</span></code>
to be <code class="computeroutput"><span class="identifier">Clock</span><span class="special">::</span><span class="identifier">max</span><span class="special">()</span></code> (meaning
never reached) or <code class="computeroutput"><span class="identifier">Clock</span><span class="special">::</span><span class="identifier">min</span><span class="special">()</span></code> (meaning
always in the past). As a result, computing the duration until timer expiry
as <code class="computeroutput"><span class="identifier">e</span> <span class="special">-</span>
<span class="identifier">Clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code> may
cause overflow. —<span class="emphasis"><em>end note</em></span>]
</p>
<p>
For a type <code class="computeroutput"><span class="identifier">Clock</span></code> meeting
the <code class="computeroutput"><span class="identifier">Clock</span></code> requirements (C++Std
[time.clock.req]), a type <code class="computeroutput"><span class="identifier">X</span></code>
meets the <code class="computeroutput"><span class="identifier">WaitTraits</span></code> requirements
if it satisfies the requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput"><span class="identifier">t</span></code> denotes
a (possibly const) value of type <code class="computeroutput"><span class="identifier">Clock</span><span class="special">::</span><span class="identifier">time_point</span></code>;
and <code class="computeroutput"><span class="identifier">d</span></code> denotes a (possibly
const) value of type <code class="computeroutput"><span class="identifier">Clock</span><span class="special">::</span><span class="identifier">duration</span></code>.
</p>
<div class="table">
<a name="asio.reference.WaitTraits.t0"></a><p class="title"><b>Table 35. WaitTraits requirements</b></p>
<div class="table-contents"><table class="table" summary="WaitTraits requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
return type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-condition
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">to_wait_duration</span><span class="special">(</span><span class="identifier">d</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">Clock</span><span class="special">::</span><span class="identifier">duration</span></code>
</p>
</td>
<td>
<p>
Returns a <code class="computeroutput"><span class="identifier">Clock</span><span class="special">::</span><span class="identifier">duration</span></code>
value to be used in a <code class="computeroutput"><span class="identifier">wait</span></code>
or <code class="computeroutput"><span class="identifier">async_wait</span></code> operation.
[<span class="emphasis"><em>Note:</em></span> The return value is typically representative
of the duration <code class="computeroutput"><span class="identifier">d</span></code>.
<span class="emphasis"><em>end note</em></span>]
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">to_wait_duration</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">Clock</span><span class="special">::</span><span class="identifier">duration</span></code>
</p>
</td>
<td>
<p>
Returns a <code class="computeroutput"><span class="identifier">Clock</span><span class="special">::</span><span class="identifier">duration</span></code>
value to be used in a <code class="computeroutput"><span class="identifier">wait</span></code>
or <code class="computeroutput"><span class="identifier">async_wait</span></code> operation.
[<span class="emphasis"><em>Note:</em></span> The return value is typically representative
of the duration from <code class="computeroutput"><span class="identifier">Clock</span><span class="special">::</span><span class="identifier">now</span><span class="special">()</span></code> until the time point <code class="computeroutput"><span class="identifier">t</span></code>. —<span class="emphasis"><em>end note</em></span>]
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<div class="copyright-footer">Copyright © 2003-2023 Christopher M. Kohlhoff<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="WaitToken.html"><img src="../../prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../home.png" alt="Home"></a><a accesskey="n" href="WriteHandler.html"><img src="../../next.png" alt="Next"></a>
</div>
</body>
</html>