3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>basic_deadline_timer::rebind_executor::other</title>
5 <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
8 <link rel="up" href="../basic_deadline_timer__rebind_executor.html" title="basic_deadline_timer::rebind_executor">
9 <link rel="prev" href="../basic_deadline_timer__rebind_executor.html" title="basic_deadline_timer::rebind_executor">
10 <link rel="next" href="../basic_io_object.html" title="basic_io_object">
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../more/index.htm">More</a></td>
22 <div class="spirit-nav">
23 <a accesskey="p" href="../basic_deadline_timer__rebind_executor.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_deadline_timer__rebind_executor.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../boost_asio.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../basic_io_object.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
26 <div class="titlepage"><div><div><h4 class="title">
27 <a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other"></a><a class="link" href="other.html" title="basic_deadline_timer::rebind_executor::other">basic_deadline_timer::rebind_executor::other</a>
28 </h4></div></div></div>
30 <a class="indexterm" name="boost_asio.indexterm.basic_deadline_timer__rebind_executor.other"></a>
32 timer type when rebound to the specified executor.
34 <pre class="programlisting">typedef basic_deadline_timer< Time, TimeTraits, Executor1 > other;
37 <a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.h0"></a>
38 <span class="phrase"><a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.types"></a></span><a class="link" href="other.html#boost_asio.reference.basic_deadline_timer__rebind_executor.other.types">Types</a>
40 <div class="informaltable"><table class="table">
61 <a class="link" href="../basic_deadline_timer__rebind_executor.html" title="basic_deadline_timer::rebind_executor"><span class="bold"><strong>rebind_executor</strong></span></a>
66 Rebinds the timer type to another executor.
73 <a class="link" href="../basic_deadline_timer/duration_type.html" title="basic_deadline_timer::duration_type"><span class="bold"><strong>duration_type</strong></span></a>
85 <a class="link" href="../basic_deadline_timer/executor_type.html" title="basic_deadline_timer::executor_type"><span class="bold"><strong>executor_type</strong></span></a>
90 The type of the executor associated with the object.
97 <a class="link" href="../basic_deadline_timer/time_type.html" title="basic_deadline_timer::time_type"><span class="bold"><strong>time_type</strong></span></a>
109 <a class="link" href="../basic_deadline_timer/traits_type.html" title="basic_deadline_timer::traits_type"><span class="bold"><strong>traits_type</strong></span></a>
114 The time traits type.
121 <a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.h1"></a>
122 <span class="phrase"><a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.member_functions"></a></span><a class="link" href="other.html#boost_asio.reference.basic_deadline_timer__rebind_executor.other.member_functions">Member
125 <div class="informaltable"><table class="table">
146 <a class="link" href="../basic_deadline_timer/async_wait.html" title="basic_deadline_timer::async_wait"><span class="bold"><strong>async_wait</strong></span></a>
151 Start an asynchronous wait on the timer.
158 <a class="link" href="../basic_deadline_timer/basic_deadline_timer.html" title="basic_deadline_timer::basic_deadline_timer"><span class="bold"><strong>basic_deadline_timer</strong></span></a>
163 Constructor. <br> <span class="silver"> —</span><br> Constructor to set a particular expiry
164 time as an absolute time. <br> <span class="silver"> —</span><br> Constructor to set a
165 particular expiry time relative to now. <br> <span class="silver"> —</span><br> Move-construct
166 a basic_deadline_timer from another.
173 <a class="link" href="../basic_deadline_timer/cancel.html" title="basic_deadline_timer::cancel"><span class="bold"><strong>cancel</strong></span></a>
178 Cancel any asynchronous operations that are waiting on the timer.
185 <a class="link" href="../basic_deadline_timer/cancel_one.html" title="basic_deadline_timer::cancel_one"><span class="bold"><strong>cancel_one</strong></span></a>
190 Cancels one asynchronous operation that is waiting on the timer.
197 <a class="link" href="../basic_deadline_timer/expires_at.html" title="basic_deadline_timer::expires_at"><span class="bold"><strong>expires_at</strong></span></a>
202 Get the timer's expiry time as an absolute time. <br> <span class="silver"> —</span><br>
203 Set the timer's expiry time as an absolute time.
210 <a class="link" href="../basic_deadline_timer/expires_from_now.html" title="basic_deadline_timer::expires_from_now"><span class="bold"><strong>expires_from_now</strong></span></a>
215 Get the timer's expiry time relative to now. <br> <span class="silver"> —</span><br> Set
216 the timer's expiry time relative to now.
223 <a class="link" href="../basic_deadline_timer/get_executor.html" title="basic_deadline_timer::get_executor"><span class="bold"><strong>get_executor</strong></span></a>
228 Get the executor associated with the object.
235 <a class="link" href="../basic_deadline_timer/operator_eq_.html" title="basic_deadline_timer::operator="><span class="bold"><strong>operator=</strong></span></a>
240 Move-assign a basic_deadline_timer from another.
247 <a class="link" href="../basic_deadline_timer/wait.html" title="basic_deadline_timer::wait"><span class="bold"><strong>wait</strong></span></a>
252 Perform a blocking wait on the timer.
259 <a class="link" href="../basic_deadline_timer/_basic_deadline_timer.html" title="basic_deadline_timer::~basic_deadline_timer"><span class="bold"><strong>~basic_deadline_timer</strong></span></a>
271 The <a class="link" href="../basic_deadline_timer.html" title="basic_deadline_timer"><code class="computeroutput">basic_deadline_timer</code></a>
272 class template provides the ability to perform a blocking or asynchronous
273 wait for a timer to expire.
276 A deadline timer is always in one of two states: "expired" or
277 "not expired". If the <code class="computeroutput">wait()</code> or <code class="computeroutput">async_wait()</code>
278 function is called on an expired timer, the wait operation will complete
282 Most applications will use the <a class="link" href="../deadline_timer.html" title="deadline_timer"><code class="computeroutput">deadline_timer</code></a>
286 <a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.h2"></a>
287 <span class="phrase"><a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.thread_safety"></a></span><a class="link" href="other.html#boost_asio.reference.basic_deadline_timer__rebind_executor.other.thread_safety">Thread
291 <span class="emphasis"><em>Distinct</em></span> <span class="emphasis"><em>objects:</em></span> Safe.
294 <span class="emphasis"><em>Shared</em></span> <span class="emphasis"><em>objects:</em></span> Unsafe.
297 <a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.h3"></a>
298 <span class="phrase"><a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.examples"></a></span><a class="link" href="other.html#boost_asio.reference.basic_deadline_timer__rebind_executor.other.examples">Examples</a>
301 Performing a blocking wait:
303 <pre class="programlisting">// Construct a timer without setting an expiry time.
304 boost::asio::deadline_timer timer(my_context);
306 // Set an expiry time relative to now.
307 timer.expires_from_now(boost::posix_time::seconds(5));
309 // Wait for the timer to expire.
313 Performing an asynchronous wait:
315 <pre class="programlisting">void handler(const boost::system::error_code& error)
325 // Construct a timer with an absolute expiry time.
326 boost::asio::deadline_timer timer(my_context,
327 boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
329 // Start an asynchronous wait.
330 timer.async_wait(handler);
333 <a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.h4"></a>
334 <span class="phrase"><a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.changing_an_active_deadline_timer_s_expiry_time"></a></span><a class="link" href="other.html#boost_asio.reference.basic_deadline_timer__rebind_executor.other.changing_an_active_deadline_timer_s_expiry_time">Changing
335 an active deadline_timer's expiry time</a>
338 Changing the expiry time of a timer while there are pending asynchronous
339 waits causes those wait operations to be cancelled. To ensure that the
340 action associated with the timer is performed only once, use something
343 <pre class="programlisting">void on_some_event()
345 if (my_timer.expires_from_now(seconds(5)) > 0)
347 // We managed to cancel the timer. Start new asynchronous wait.
348 my_timer.async_wait(on_timeout);
352 // Too late, timer has already expired!
356 void on_timeout(const boost::system::error_code& e)
358 if (e != boost::asio::error::operation_aborted)
360 // Timer was not cancelled, take necessary action.
364 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
365 <li class="listitem">
366 The <code class="computeroutput">boost::asio::basic_deadline_timer::expires_from_now()</code>
367 function cancels any pending asynchronous waits, and returns the number
368 of asynchronous waits that were cancelled. If it returns 0 then you
369 were too late and the wait handler has already been executed, or will
370 soon be executed. If it returns 1 then the wait handler was successfully
373 <li class="listitem">
374 If a wait handler is cancelled, the boost::system::error_code passed
375 to it contains the value <code class="computeroutput">boost::asio::error::operation_aborted</code>.
379 <a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.h5"></a>
380 <span class="phrase"><a name="boost_asio.reference.basic_deadline_timer__rebind_executor.other.requirements"></a></span><a class="link" href="other.html#boost_asio.reference.basic_deadline_timer__rebind_executor.other.requirements">Requirements</a>
383 <span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/basic_deadline_timer.hpp</code>
386 <span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code>
389 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
390 <td align="left"></td>
391 <td align="right"><div class="copyright-footer">Copyright © 2003-2019 Christopher M. Kohlhoff<p>
392 Distributed under the Boost Software License, Version 1.0. (See accompanying
393 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>)
398 <div class="spirit-nav">
399 <a accesskey="p" href="../basic_deadline_timer__rebind_executor.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_deadline_timer__rebind_executor.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../boost_asio.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../basic_io_object.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>