diff options
Diffstat (limited to '3rdparty/asio/src/doc/overview/timers.qbk')
-rw-r--r-- | 3rdparty/asio/src/doc/overview/timers.qbk | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/3rdparty/asio/src/doc/overview/timers.qbk b/3rdparty/asio/src/doc/overview/timers.qbk new file mode 100644 index 00000000000..0c5528dcc1b --- /dev/null +++ b/3rdparty/asio/src/doc/overview/timers.qbk @@ -0,0 +1,52 @@ +[/ + / Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com) + / + / Distributed under the Boost Software License, Version 1.0. (See accompanying + / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + /] + +[section:timers Timers] + +Long running I/O operations will often have a deadline by which they must have +completed. These deadlines may be expressed as absolute times, but are often +calculated relative to the current time. + +As a simple example, to perform a synchronous wait operation on a timer using a +relative time one may write: + + io_context i; + ... + deadline_timer t(i); + t.expires_from_now(boost::posix_time::seconds(5)); + t.wait(); + +More commonly, a program will perform an asynchronous wait operation on a +timer: + + void handler(asio::error_code ec) { ... } + ... + io_context i; + ... + deadline_timer t(i); + t.expires_from_now(boost::posix_time::milliseconds(400)); + t.async_wait(handler); + ... + i.run(); + +The deadline associated with a timer may also be obtained as a relative time: + + boost::posix_time::time_duration time_until_expiry + = t.expires_from_now(); + +or as an absolute time to allow composition of timers: + + deadline_timer t2(i); + t2.expires_at(t.expires_at() + boost::posix_time::seconds(30)); + +[heading See Also] + +[link asio.reference.basic_deadline_timer basic_deadline_timer], +[link asio.reference.deadline_timer deadline_timer], +[link asio.tutorial.tuttimer1 timer tutorials]. + +[endsect] |