[DEV] add v1.76.0

This commit is contained in:
2021-10-05 21:37:46 +02:00
parent a97e9ae7d4
commit d0115b733d
45133 changed files with 4744437 additions and 1026325 deletions

View File

@@ -0,0 +1,112 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Accept handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="AcceptableProtocol.html" title="Acceptable protocol requirements">
<link rel="next" href="AsyncRandomAccessReadDevice.html" title="Buffer-oriented asynchronous random-access read device requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AcceptableProtocol.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="AsyncRandomAccessReadDevice.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.AcceptHandler"></a><a class="link" href="AcceptHandler.html" title="Accept handler requirements">Accept handler requirements</a>
</h3></div></div></div>
<p>
An accept handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of an accept handler class should work correctly in
the expression <code class="computeroutput">h(ec)</code>, where <code class="computeroutput">ec</code> is an lvalue of
type <code class="computeroutput">const error_code</code>.
</p>
<h5>
<a name="boost_asio.reference.AcceptHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.AcceptHandler.examples"></a></span><a class="link" href="AcceptHandler.html#boost_asio.reference.AcceptHandler.examples">Examples</a>
</h5>
<p>
A free function as an accept handler:
</p>
<pre class="programlisting">void accept_handler(
const boost::system::error_code&amp; ec)
{
...
}
</pre>
<p>
An accept handler function object:
</p>
<pre class="programlisting">struct accept_handler
{
...
void operator()(
const boost::system::error_code&amp; ec)
{
...
}
...
};
</pre>
<p>
A lambda as an accept handler:
</p>
<pre class="programlisting">acceptor.async_accept(...,
[](const boost::system::error_code&amp; ec)
{
...
});
</pre>
<p>
A non-static class member function adapted to an accept handler using <code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::accept_handler(
const boost::system::error_code&amp; ec)
{
...
}
...
acceptor.async_accept(...,
std::bind(&amp;my_class::accept_handler,
this, std::placeholders::_1));
</pre>
<p>
A non-static class member function adapted to an accept handler using <code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::accept_handler(
const boost::system::error_code&amp; ec)
{
...
}
...
acceptor.async_accept(...,
boost::bind(&amp;my_class::accept_handler,
this, boost::asio::placeholders::error));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AcceptableProtocol.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="AsyncRandomAccessReadDevice.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,95 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Acceptable protocol requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="asynchronous_socket_operations.html" title="Requirements on asynchronous socket operations">
<link rel="next" href="AcceptHandler.html" title="Accept handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="asynchronous_socket_operations.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="AcceptHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.AcceptableProtocol"></a><a class="link" href="AcceptableProtocol.html" title="Acceptable protocol requirements">Acceptable protocol
requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">AcceptableProtocol</code> requirements
if it satisfies the requirements of <a class="link" href="Protocol.html" title="Protocol requirements"><code class="computeroutput">Protocol</code></a>
as well as the additional requirements listed below.
</p>
<div class="table">
<a name="boost_asio.reference.AcceptableProtocol.t0"></a><p class="title"><b>Table 1. AcceptableProtocol requirements</b></p>
<div class="table-contents"><table class="table" summary="AcceptableProtocol 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-conditions
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput">X::socket</code>
</p>
</td>
<td>
<p>
A type that satisfies the requirements of <code class="computeroutput">Destructible</code>
(C++Std [destructible]) and <code class="computeroutput">MoveConstructible</code> (C++Std
[moveconstructible]), and that is publicly and unambiguously derived
from <code class="computeroutput">basic_socket&lt;X&gt;</code>.
</p>
</td>
<td>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="asynchronous_socket_operations.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="AcceptHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,136 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Buffer-oriented asynchronous random-access read device requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="AcceptHandler.html" title="Accept handler requirements">
<link rel="next" href="AsyncRandomAccessWriteDevice.html" title="Buffer-oriented asynchronous random-access write device requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AcceptHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="AsyncRandomAccessWriteDevice.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.AsyncRandomAccessReadDevice"></a><a class="link" href="AsyncRandomAccessReadDevice.html" title="Buffer-oriented asynchronous random-access read device requirements">Buffer-oriented
asynchronous random-access read device requirements</a>
</h3></div></div></div>
<p>
In the table below, <code class="computeroutput">a</code> denotes an asynchronous random access
read device object, <code class="computeroutput">o</code> denotes an offset of type <code class="computeroutput">boost::uint64_t</code>,
<code class="computeroutput">mb</code> denotes an object satisfying <a class="link" href="MutableBufferSequence.html" title="Mutable buffer sequence requirements">mutable
buffer sequence</a> requirements, and <code class="computeroutput">h</code> denotes an object
satisfying <a class="link" href="ReadHandler.html" title="Read handler requirements">read handler</a>
requirements.
</p>
<div class="table">
<a name="boost_asio.reference.AsyncRandomAccessReadDevice.t0"></a><p class="title"><b>Table 2. Buffer-oriented asynchronous random-access read device requirements</b></p>
<div class="table-contents"><table class="table" summary="Buffer-oriented asynchronous random-access read device requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
operation
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
semantics, pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">a.get_executor()</code>
</p>
</td>
<td>
<p>
A type satisfying the <a class="link" href="Executor1.html" title="Executor requirements">Executor
requirements</a>.
</p>
</td>
<td>
<p>
Returns the associated I/O executor.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.async_read_some_at(o, mb, h);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">void</code>
</p>
</td>
<td>
<p>
Initiates an asynchronous operation to read one or more bytes of
data from the device <code class="computeroutput">a</code> at the offset <code class="computeroutput">o</code>.
The operation is performed via the <code class="computeroutput">io_service</code> object
<code class="computeroutput">a.get_io_service()</code> and behaves according to <a class="link" href="asynchronous_operations.html" title="Requirements on asynchronous operations">asynchronous
operation</a> requirements.<br> <br> The mutable buffer
sequence <code class="computeroutput">mb</code> specifies memory where the data should
be placed. The <code class="computeroutput">async_read_some_at</code> operation shall
always fill a buffer in the sequence completely before proceeding
to the next.<br> <br> The implementation shall maintain one
or more copies of <code class="computeroutput">mb</code> until such time as the read operation
no longer requires access to the memory specified by the buffers
in the sequence. The program must ensure the memory is valid until:<br>
<br> — the last copy of <code class="computeroutput">mb</code> is destroyed, or<br>
<br> — the handler for the asynchronous read operation is invoked,<br>
<br> whichever comes first.<br> <br> If the total size of
all buffers in the sequence <code class="computeroutput">mb</code> is <code class="computeroutput">0</code>,
the asynchronous read operation shall complete immediately and
pass <code class="computeroutput">0</code> as the argument to the handler that specifies
the number of bytes read.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AcceptHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="AsyncRandomAccessWriteDevice.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,136 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Buffer-oriented asynchronous random-access write device requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="AsyncRandomAccessReadDevice.html" title="Buffer-oriented asynchronous random-access read device requirements">
<link rel="next" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AsyncRandomAccessReadDevice.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="AsyncReadStream.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.AsyncRandomAccessWriteDevice"></a><a class="link" href="AsyncRandomAccessWriteDevice.html" title="Buffer-oriented asynchronous random-access write device requirements">Buffer-oriented
asynchronous random-access write device requirements</a>
</h3></div></div></div>
<p>
In the table below, <code class="computeroutput">a</code> denotes an asynchronous write stream object,
<code class="computeroutput">o</code> denotes an offset of type <code class="computeroutput">boost::uint64_t</code>, <code class="computeroutput">cb</code>
denotes an object satisfying <a class="link" href="ConstBufferSequence.html" title="Constant buffer sequence requirements">constant
buffer sequence</a> requirements, and <code class="computeroutput">h</code> denotes an object
satisfying <a class="link" href="WriteHandler.html" title="Write handler requirements">write handler</a>
requirements.
</p>
<div class="table">
<a name="boost_asio.reference.AsyncRandomAccessWriteDevice.t0"></a><p class="title"><b>Table 3. Buffer-oriented asynchronous random-access write device requirements</b></p>
<div class="table-contents"><table class="table" summary="Buffer-oriented asynchronous random-access write device requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
operation
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
semantics, pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">a.get_executor()</code>
</p>
</td>
<td>
<p>
A type satisfying the <a class="link" href="Executor1.html" title="Executor requirements">Executor
requirements</a>.
</p>
</td>
<td>
<p>
Returns the associated I/O executor.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.async_write_some_at(o, cb, h);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">void</code>
</p>
</td>
<td>
<p>
Initiates an asynchronous operation to write one or more bytes
of data to the device <code class="computeroutput">a</code> at offset <code class="computeroutput">o</code>.
The operation is performed via the <code class="computeroutput">io_service</code> object
<code class="computeroutput">a.get_io_service()</code> and behaves according to <a class="link" href="asynchronous_operations.html" title="Requirements on asynchronous operations">asynchronous
operation</a> requirements.<br> <br> The constant buffer
sequence <code class="computeroutput">cb</code> specifies memory where the data to be
written is located. The <code class="computeroutput">async_write_some_at</code> operation
shall always write a buffer in the sequence completely before proceeding
to the next.<br> <br> The implementation shall maintain one
or more copies of <code class="computeroutput">cb</code> until such time as the write
operation no longer requires access to the memory specified by
the buffers in the sequence. The program must ensure the memory
is valid until:<br> <br> — the last copy of <code class="computeroutput">cb</code> is
destroyed, or<br> <br> — the handler for the asynchronous write
operation is invoked,<br> <br> whichever comes first.<br>
<br> If the total size of all buffers in the sequence <code class="computeroutput">cb</code>
is <code class="computeroutput">0</code>, the asynchronous write operation shall complete
immediately and pass <code class="computeroutput">0</code> as the argument to the handler
that specifies the number of bytes written.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AsyncRandomAccessReadDevice.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="AsyncReadStream.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,136 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Buffer-oriented asynchronous read stream requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="AsyncRandomAccessWriteDevice.html" title="Buffer-oriented asynchronous random-access write device requirements">
<link rel="next" href="AsyncWriteStream.html" title="Buffer-oriented asynchronous write stream requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AsyncRandomAccessWriteDevice.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="AsyncWriteStream.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.AsyncReadStream"></a><a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">Buffer-oriented
asynchronous read stream requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">AsyncReadStream</code> requirements
if it satisfies the requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">a</code> denotes a value of type <code class="computeroutput">X</code>,
<code class="computeroutput">mb</code> denotes a (possibly const) value satisfying the <a class="link" href="MutableBufferSequence.html" title="Mutable buffer sequence requirements"><code class="computeroutput">MutableBufferSequence</code></a>
requirements, and <code class="computeroutput">t</code> is a completion token.
</p>
<div class="table">
<a name="boost_asio.reference.AsyncReadStream.t0"></a><p class="title"><b>Table 4. AsyncReadStream requirements</b></p>
<div class="table-contents"><table class="table" summary="AsyncReadStream requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
operation
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
semantics, pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">a.get_executor()</code>
</p>
</td>
<td>
<p>
A type satisfying the <a class="link" href="Executor1.html" title="Executor requirements">Executor
requirements</a>.
</p>
</td>
<td>
<p>
Returns the associated I/O executor.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.async_read_some(mb,t)</code>
</p>
</td>
<td>
<p>
The return type is determined according to the requirements for
an <a class="link" href="asynchronous_operations.html" title="Requirements on asynchronous operations">asynchronous
operation</a>.
</p>
</td>
<td>
<p>
Meets the requirements for a <a class="link" href="read_write_operations.html" title="Requirements on read and write operations">read
operation</a> and an <a class="link" href="asynchronous_operations.html" title="Requirements on asynchronous operations">asynchronous
operation</a> with completion signature <code class="computeroutput">void(error_code
ec, size_t n)</code>.<br> <br> If <code class="computeroutput">buffer_size(mb) &gt;
0</code>, initiates an asynchronous operation to read one or more
bytes of data from the stream <code class="computeroutput">a</code> into the buffer sequence
<code class="computeroutput">mb</code>. If successful, <code class="computeroutput">ec</code> is set such that
<code class="computeroutput">!ec</code> is <code class="computeroutput">true</code>, and <code class="computeroutput">n</code> is the
number of bytes read. If an error occurred, <code class="computeroutput">ec</code> is
set such that <code class="computeroutput">!!ec</code> is <code class="computeroutput">true</code>, and <code class="computeroutput">n</code>
is 0. If all data has been read from the stream, and the stream
performed an orderly shutdown, <code class="computeroutput">ec</code> is <code class="computeroutput">stream_errc::eof</code>
and <code class="computeroutput">n</code> is 0.<br> <br> If <code class="computeroutput">buffer_size(mb)
== 0</code>, the operation completes immediately. <code class="computeroutput">ec</code>
is set such that <code class="computeroutput">!ec</code> is <code class="computeroutput">true</code>, and <code class="computeroutput">n</code>
is 0.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AsyncRandomAccessWriteDevice.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="AsyncWriteStream.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,133 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Buffer-oriented asynchronous write stream requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">
<link rel="next" href="BufferedHandshakeHandler.html" title="Buffered handshake handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AsyncReadStream.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="BufferedHandshakeHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.AsyncWriteStream"></a><a class="link" href="AsyncWriteStream.html" title="Buffer-oriented asynchronous write stream requirements">Buffer-oriented
asynchronous write stream requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">AsyncWriteStream</code> requirements
if it satisfies the requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">a</code> denotes a value of type <code class="computeroutput">X</code>,
<code class="computeroutput">cb</code> denotes a (possibly const) value satisfying the <a class="link" href="ConstBufferSequence.html" title="Constant buffer sequence requirements"><code class="computeroutput">ConstBufferSequence</code></a>
requirements, and <code class="computeroutput">t</code> is a completion token.
</p>
<div class="table">
<a name="boost_asio.reference.AsyncWriteStream.t0"></a><p class="title"><b>Table 5. AsyncWriteStream requirements</b></p>
<div class="table-contents"><table class="table" summary="AsyncWriteStream requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
operation
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
semantics, pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">a.get_executor()</code>
</p>
</td>
<td>
<p>
A type satisfying the <a class="link" href="Executor1.html" title="Executor requirements">Executor
requirements</a>.
</p>
</td>
<td>
<p>
Returns the associated I/O executor.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.async_write_some(cb,t)</code>
</p>
</td>
<td>
<p>
The return type is determined according to the requirements for
an <a class="link" href="asynchronous_operations.html" title="Requirements on asynchronous operations">asynchronous
operation</a>.
</p>
</td>
<td>
<p>
Meets the requirements for a <a class="link" href="read_write_operations.html" title="Requirements on read and write operations">write
operation</a> and an <a class="link" href="asynchronous_operations.html" title="Requirements on asynchronous operations">asynchronous
operation</a> with completion signature <code class="computeroutput">void(error_code
ec, size_t n)</code>.<br> <br> If <code class="computeroutput">buffer_size(cb) &gt;
0</code>, initiates an asynchronous operation to write one or more
bytes of data to the stream <code class="computeroutput">a</code> from the buffer sequence
<code class="computeroutput">cb</code>. If successful, <code class="computeroutput">ec</code> is set such that
<code class="computeroutput">!ec</code> is <code class="computeroutput">true</code>, and <code class="computeroutput">n</code> is the
number of bytes written. If an error occurred, <code class="computeroutput">ec</code>
is set such that <code class="computeroutput">!!ec</code> is <code class="computeroutput">true</code>, and <code class="computeroutput">n</code>
is 0.<br> <br> If <code class="computeroutput">buffer_size(cb) == 0</code>, the operation
completes immediately. <code class="computeroutput">ec</code> is set such that <code class="computeroutput">!ec</code>
is <code class="computeroutput">true</code>, and <code class="computeroutput">n</code> is 0.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AsyncReadStream.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="BufferedHandshakeHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,97 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Buffered handshake handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="AsyncWriteStream.html" title="Buffer-oriented asynchronous write stream requirements">
<link rel="next" href="CompletionCondition.html" title="Completion condition requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AsyncWriteStream.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="CompletionCondition.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.BufferedHandshakeHandler"></a><a class="link" href="BufferedHandshakeHandler.html" title="Buffered handshake handler requirements">Buffered
handshake handler requirements</a>
</h3></div></div></div>
<p>
A buffered handshake handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a buffered handshake handler class should work
correctly in the expression <code class="computeroutput">h(ec, s)</code>, where <code class="computeroutput">ec</code>
is an lvalue of type <code class="computeroutput">const error_code</code> and <code class="computeroutput">s</code> is
an lvalue of type <code class="computeroutput">const size_t</code>.
</p>
<h5>
<a name="boost_asio.reference.BufferedHandshakeHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.BufferedHandshakeHandler.examples"></a></span><a class="link" href="BufferedHandshakeHandler.html#boost_asio.reference.BufferedHandshakeHandler.examples">Examples</a>
</h5>
<p>
A free function as a buffered handshake handler:
</p>
<pre class="programlisting">void handshake_handler(
const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
}
</pre>
<p>
A buffered handshake handler function object:
</p>
<pre class="programlisting">struct handshake_handler
{
...
void operator()(
const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
}
...
};
</pre>
<p>
A non-static class member function adapted to a buffered handshake handler
using <code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::handshake_handler(
const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
}
...
socket.async_handshake(...,
boost::bind(&amp;my_class::handshake_handler,
this, boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AsyncWriteStream.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="CompletionCondition.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,114 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Completion condition requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="BufferedHandshakeHandler.html" title="Buffered handshake handler requirements">
<link rel="next" href="CompletionHandler.html" title="Completion handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="BufferedHandshakeHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="CompletionHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.CompletionCondition"></a><a class="link" href="CompletionCondition.html" title="Completion condition requirements">Completion
condition requirements</a>
</h3></div></div></div>
<p>
A <span class="emphasis"><em>completion condition</em></span> is a function object that is
used with the algorithms <a class="link" href="read.html" title="read"><code class="computeroutput">read</code></a>,
<a class="link" href="async_read.html" title="async_read"><code class="computeroutput">async_read</code></a>,
<a class="link" href="write.html" title="write"><code class="computeroutput">write</code></a>, and
<a class="link" href="async_write.html" title="async_write"><code class="computeroutput">async_write</code></a>
to determine when the algorithm has completed transferring data.
</p>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">CompletionCondition</code> requirements
if it satisfies the requirements of <code class="computeroutput">Destructible</code> (C++Std [destructible])
and <code class="computeroutput">MoveConstructible</code> (C++Std [moveconstructible]), as well
as the additional requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">x</code> denotes a value of type <code class="computeroutput">X</code>,
<code class="computeroutput">ec</code> denotes a (possibly const) value of type <code class="computeroutput">error_code</code>,
and <code class="computeroutput">n</code> denotes a (possibly const) value of type <code class="computeroutput">size_t</code>.
</p>
<div class="table">
<a name="boost_asio.reference.CompletionCondition.t0"></a><p class="title"><b>Table 6. CompletionCondition requirements</b></p>
<div class="table-contents"><table class="table" summary="CompletionCondition 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">x(ec, n)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Let <code class="computeroutput">n</code> be the total number of bytes transferred by
the read or write algorithm so far.<br> <br> Returns the maximum
number of bytes to be transferred on the next <code class="computeroutput">read_some</code>,
<code class="computeroutput">async_read_some</code>, <code class="computeroutput">write_some</code>, or <code class="computeroutput">async_write_some</code>
operation performed by the algorithm. Returns <code class="computeroutput">0</code> to
indicate that the algorithm is complete.
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="BufferedHandshakeHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="CompletionHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,106 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Completion handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="CompletionCondition.html" title="Completion condition requirements">
<link rel="next" href="ConnectCondition.html" title="Connect condition requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="CompletionCondition.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ConnectCondition.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.CompletionHandler"></a><a class="link" href="CompletionHandler.html" title="Completion handler requirements">Completion handler
requirements</a>
</h3></div></div></div>
<p>
A completion handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a completion handler class should work correctly
in the expression <code class="computeroutput">h()</code>.
</p>
<h5>
<a name="boost_asio.reference.CompletionHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.CompletionHandler.examples"></a></span><a class="link" href="CompletionHandler.html#boost_asio.reference.CompletionHandler.examples">Examples</a>
</h5>
<p>
A free function as a completion handler:
</p>
<pre class="programlisting">void completion_handler()
{
...
}
</pre>
<p>
A completion handler function object:
</p>
<pre class="programlisting">struct completion_handler
{
...
void operator()()
{
...
}
...
};
</pre>
<p>
A lambda as a completion handler:
</p>
<pre class="programlisting">my_io_service.post(
[]()
{
...
});
</pre>
<p>
A non-static class member function adapted to a completion handler using
<code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::completion_handler()
{
...
}
...
my_io_service.post(std::bind(&amp;my_class::completion_handler, this));
</pre>
<p>
A non-static class member function adapted to a completion handler using
<code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::completion_handler()
{
...
}
...
my_io_service.post(boost::bind(&amp;my_class::completion_handler, this));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="CompletionCondition.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ConnectCondition.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,107 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Connect condition requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="CompletionHandler.html" title="Completion handler requirements">
<link rel="next" href="ConnectHandler.html" title="Connect handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="CompletionHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ConnectHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.ConnectCondition"></a><a class="link" href="ConnectCondition.html" title="Connect condition requirements">Connect condition
requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">ConnectCondition</code> requirements
if it satisfies the requirements of <code class="computeroutput">Destructible</code> (C++Std [destructible])
and <code class="computeroutput">CopyConstructible</code> (C++Std [copyconstructible]), as well
as the additional requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">x</code> denotes a value of type <code class="computeroutput">X</code>,
<code class="computeroutput">ec</code> denotes a (possibly const) value of type <code class="computeroutput">error_code</code>,
and <code class="computeroutput">ep</code> denotes a (possibly const) value of some type satisfying
the <a class="link" href="Endpoint.html" title="Endpoint requirements">endpoint</a> requirements.
</p>
<div class="table">
<a name="boost_asio.reference.ConnectCondition.t0"></a><p class="title"><b>Table 7. ConnectCondition requirements</b></p>
<div class="table-contents"><table class="table" summary="ConnectCondition 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">x(ec, ep)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">bool</code>
</p>
</td>
<td>
<p>
Returns <code class="computeroutput">true</code> to indicate that the <code class="computeroutput">connect</code>
or <code class="computeroutput">async_connect</code> algorithm should attempt a connection
to the endpoint <code class="computeroutput">ep</code>. Otherwise, returns <code class="computeroutput">false</code>
to indicate that the algorithm should not attempt connection to
the endpoint <code class="computeroutput">ep</code>, and should instead skip to the next
endpoint in the sequence.
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="CompletionHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ConnectHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,113 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Connect handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="ConnectCondition.html" title="Connect condition requirements">
<link rel="next" href="ConstBufferSequence.html" title="Constant buffer sequence requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ConnectCondition.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ConstBufferSequence.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.ConnectHandler"></a><a class="link" href="ConnectHandler.html" title="Connect handler requirements">Connect handler
requirements</a>
</h3></div></div></div>
<p>
A connect handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a connect handler class should work correctly in
the expression <code class="computeroutput">h(ec)</code>, where <code class="computeroutput">ec</code> is an lvalue of
type <code class="computeroutput">const error_code</code>.
</p>
<h5>
<a name="boost_asio.reference.ConnectHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.ConnectHandler.examples"></a></span><a class="link" href="ConnectHandler.html#boost_asio.reference.ConnectHandler.examples">Examples</a>
</h5>
<p>
A free function as a connect handler:
</p>
<pre class="programlisting">void connect_handler(
const boost::system::error_code&amp; ec)
{
...
}
</pre>
<p>
A connect handler function object:
</p>
<pre class="programlisting">struct connect_handler
{
...
void operator()(
const boost::system::error_code&amp; ec)
{
...
}
...
};
</pre>
<p>
A lambda as a connect handler:
</p>
<pre class="programlisting">socket.async_connect(...,
[](const boost::system::error_code&amp; ec)
{
...
});
</pre>
<p>
A non-static class member function adapted to a connect handler using <code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::connect_handler(
const boost::system::error_code&amp; ec)
{
...
}
...
socket.async_connect(...,
std::bind(&amp;my_class::connect_handler,
this, std::placeholders::_1));
</pre>
<p>
A non-static class member function adapted to a connect handler using <code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::connect_handler(
const boost::system::error_code&amp; ec)
{
...
}
...
socket.async_connect(...,
boost::bind(&amp;my_class::connect_handler,
this, boost::asio::placeholders::error));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ConnectCondition.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ConstBufferSequence.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,137 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Constant buffer sequence requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="ConnectHandler.html" title="Connect handler requirements">
<link rel="next" href="DynamicBuffer.html" title="Dynamic buffer requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ConnectHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="DynamicBuffer.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.ConstBufferSequence"></a><a class="link" href="ConstBufferSequence.html" title="Constant buffer sequence requirements">Constant buffer
sequence requirements</a>
</h3></div></div></div>
<p>
A <span class="emphasis"><em>constant buffer sequence</em></span> represents a set of memory
regions that may be used as input to an operation, such as the <code class="computeroutput">send</code>
operation of a socket.
</p>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">ConstBufferSequence</code> requirements
if it satisfies the requirements of <code class="computeroutput">Destructible</code> (C++Std [destructible])
and <code class="computeroutput">CopyConstructible</code> (C++Std [copyconstructible]), as well
as the additional requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">x</code> denotes a (possibly const) value of type
<code class="computeroutput">X</code>, and <code class="computeroutput">u</code> denotes an identifier.
</p>
<div class="table">
<a name="boost_asio.reference.ConstBufferSequence.t0"></a><p class="title"><b>Table 8. ConstBufferSequence requirements</b></p>
<div class="table-contents"><table class="table" summary="ConstBufferSequence 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">boost::asio::buffer_sequence_begin(x)</code><br> <code class="computeroutput">boost::asio::buffer_sequence_end(x)</code>
</p>
</td>
<td>
<p>
An iterator type meeting the requirements for bidirectional iterators
(C++Std [bidirectional.iterators]) whose value type is convertible
to <code class="computeroutput">const_buffer</code>.
</p>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
</p>
<pre class="programlisting">X u(x);
</pre>
<p>
</p>
</td>
<td>
</td>
<td>
<p>
post:<br>
</p>
<pre class="programlisting">equal(
boost::asio::buffer_sequence_begin(x),
boost::asio::buffer_sequence_end(x),
boost::asio::buffer_sequence_begin(u),
boost::asio::buffer_sequence_end(u),
[](const const_buffer&amp; b1,
const const_buffer&amp; b2)
{
return b1.data() == b2.data()
&amp;&amp; b1.size() == b2.size();
})
</pre>
<p>
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ConnectHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="DynamicBuffer.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,57 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Dynamic buffer requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="ConstBufferSequence.html" title="Constant buffer sequence requirements">
<link rel="next" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ConstBufferSequence.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="DynamicBuffer_v1.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.DynamicBuffer"></a><a class="link" href="DynamicBuffer.html" title="Dynamic buffer requirements">Dynamic buffer requirements</a>
</h3></div></div></div>
<p>
See:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">Dynamic buffer
requirements (version 1)</a>
</li>
<li class="listitem">
<a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">Dynamic buffer
requirements (version 2)</a>
</li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ConstBufferSequence.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="DynamicBuffer_v1.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,265 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Dynamic buffer requirements (version 1)</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="DynamicBuffer.html" title="Dynamic buffer requirements">
<link rel="next" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="DynamicBuffer.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="DynamicBuffer_v2.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.DynamicBuffer_v1"></a><a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">Dynamic buffer
requirements (version 1)</a>
</h3></div></div></div>
<p>
A dynamic buffer encapsulates memory storage that may be automatically resized
as required, where the memory is divided into an input sequence followed
by an output sequence. These memory regions are internal to the dynamic buffer
sequence, but direct access to the elements is provided to permit them to
be efficiently used with I/O operations, such as the <code class="computeroutput">send</code> or
<code class="computeroutput">receive</code> operations of a socket. Data written to the output sequence
of a dynamic buffer sequence object is appended to the input sequence of
the same object.
</p>
<p>
A dynamic buffer type <code class="computeroutput">X</code> shall satisfy the requirements of <code class="computeroutput">MoveConstructible</code>
(C++ Std, [moveconstructible]) types in addition to those listed below.
</p>
<p>
In the table below, <code class="computeroutput">X</code> denotes a dynamic buffer class, <code class="computeroutput">x</code>
denotes a value of type <code class="computeroutput">X&amp;</code>, <code class="computeroutput">x1</code> denotes values
of type <code class="computeroutput">const X&amp;</code>, and <code class="computeroutput">n</code> denotes a value of
type <code class="computeroutput">size_t</code>, and <code class="computeroutput">u</code> denotes an identifier.
</p>
<div class="table">
<a name="boost_asio.reference.DynamicBuffer_v1.t0"></a><p class="title"><b>Table 9. DynamicBuffer_v1 requirements</b></p>
<div class="table-contents"><table class="table" summary="DynamicBuffer_v1 requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">X::const_buffers_type</code>
</p>
</td>
<td>
<p>
type meeting <a class="link" href="ConstBufferSequence.html" title="Constant buffer sequence requirements">ConstBufferSequence</a>
requirements.
</p>
</td>
<td>
<p>
This type represents the memory associated with the input sequence.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::mutable_buffers_type</code>
</p>
</td>
<td>
<p>
type meeting <a class="link" href="MutableBufferSequence.html" title="Mutable buffer sequence requirements">MutableBufferSequence</a>
requirements.
</p>
</td>
<td>
<p>
This type represents the memory associated with the output sequence.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.size()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns the size, in bytes, of the input sequence.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.max_size()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns the permitted maximum of the sum of the sizes of the input
sequence and output sequence.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.capacity()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns the maximum sum of the sizes of the input sequence and
output sequence that the dynamic buffer can hold without requiring
reallocation.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.data()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">X::const_buffers_type</code>
</p>
</td>
<td>
<p>
Returns a constant buffer sequence <code class="computeroutput">u</code> that represents
the memory associated with the input sequence, and where <code class="computeroutput">buffer_size(u)
== size()</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.prepare(n)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">X::mutable_buffers_type</code>
</p>
</td>
<td>
<p>
Requires: <code class="computeroutput">size() + n &lt;= max_size()</code>.<br> <br>
Returns a mutable buffer sequence <code class="computeroutput">u</code> representing the
output sequence, and where <code class="computeroutput">buffer_size(u) == n</code>. The
dynamic buffer reallocates memory as required. All constant or
mutable buffer sequences previously obtained using <code class="computeroutput">data()</code>
or <code class="computeroutput">prepare()</code> are invalidated.<br> <br> Throws:
<code class="computeroutput">length_error</code> if <code class="computeroutput">size() + n &gt; max_size()</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.commit(n)</code>
</p>
</td>
<td>
</td>
<td>
<p>
Appends <code class="computeroutput">n</code> bytes from the start of the output sequence
to the end of the input sequence. The remainder of the output sequence
is discarded. If <code class="computeroutput">n</code> is greater than the size of the
output sequence, the entire output sequence is appended to the
input sequence. All constant or mutable buffer sequences previously
obtained using <code class="computeroutput">data()</code> or <code class="computeroutput">prepare()</code> are
invalidated.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.consume(n)</code>
</p>
</td>
<td>
</td>
<td>
<p>
Removes <code class="computeroutput">n</code> bytes from beginning of the input sequence.
If <code class="computeroutput">n</code> is greater than the size of the input sequence,
the entire input sequence is removed. All constant or mutable buffer
sequences previously obtained using <code class="computeroutput">data()</code> or <code class="computeroutput">prepare()</code>
are invalidated.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="DynamicBuffer.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="DynamicBuffer_v2.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,272 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Dynamic buffer requirements (version 2)</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">
<link rel="next" href="Endpoint.html" title="Endpoint requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="DynamicBuffer_v1.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Endpoint.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.DynamicBuffer_v2"></a><a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">Dynamic buffer
requirements (version 2)</a>
</h3></div></div></div>
<p>
A dynamic buffer encapsulates memory storage that may be automatically resized
as required.
</p>
<p>
A dynamic buffer type <code class="computeroutput">X</code> shall satisfy the requirements of <code class="computeroutput">CopyConstructible</code>
(C++ Std, [copyconstructible]) types in addition to those listed below.
</p>
<p>
In the table below, <code class="computeroutput">X</code> denotes a dynamic buffer class, <code class="computeroutput">x</code>
denotes a value of type <code class="computeroutput">X&amp;</code>, <code class="computeroutput">x1</code> denotes values
of type <code class="computeroutput">const X&amp;</code>, <code class="computeroutput">pos</code> and <code class="computeroutput">n</code> denote
values of type <code class="computeroutput">size_t</code>, and <code class="computeroutput">u</code> denotes an identifier.
</p>
<div class="table">
<a name="boost_asio.reference.DynamicBuffer_v2.t0"></a><p class="title"><b>Table 10. DynamicBuffer_v2 requirements</b></p>
<div class="table-contents"><table class="table" summary="DynamicBuffer_v2 requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">X::const_buffers_type</code>
</p>
</td>
<td>
<p>
type meeting <a class="link" href="ConstBufferSequence.html" title="Constant buffer sequence requirements">ConstBufferSequence</a>
requirements.
</p>
</td>
<td>
<p>
This type represents the underlying memory as a sequence of @c
const_buffer objects.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::mutable_buffers_type</code>
</p>
</td>
<td>
<p>
type meeting <a class="link" href="MutableBufferSequence.html" title="Mutable buffer sequence requirements">MutableBufferSequence</a>
requirements.
</p>
</td>
<td>
<p>
This type represents the underlying memory as a sequence of @c
mutable_buffer objects.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.size()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns the size, in bytes, of the underlying memory.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.max_size()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns the permitted maximum size of the underlying memory.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.capacity()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns the maximum size to which the underlying memory can grow
without requiring reallocation.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.data(pos, n)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">X::const_buffers_type</code>
</p>
</td>
<td>
<p>
Returns a constant buffer sequence <code class="computeroutput">u</code> that represents
the underlying memory beginning at offset <code class="computeroutput">pos</code>, and
where <code class="computeroutput">buffer_size(u) &lt;= n</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.data(pos, n)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">X::mutable_buffers_type</code>
</p>
</td>
<td>
<p>
Returns a mutable buffer sequence <code class="computeroutput">u</code> that represents
the underlying memory beginning at offset <code class="computeroutput">pos</code>, and
where <code class="computeroutput">buffer_size(u) &lt;= n</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.grow(n)</code>
</p>
</td>
<td>
</td>
<td>
<p>
Requires: <code class="computeroutput">size() + n &lt;= max_size()</code>.<br> <br>
Extends the underlying memory to accommodate <code class="computeroutput">n</code> additional
bytes at the end. The dynamic buffer reallocates memory as required.
All constant or mutable buffer sequences previously obtained using
<code class="computeroutput">data()</code> are invalidated.<br> <br> Throws: <code class="computeroutput">length_error</code>
if <code class="computeroutput">size() + n &gt; max_size()</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.shrink(n)</code>
</p>
</td>
<td>
</td>
<td>
<p>
Removes <code class="computeroutput">n</code> bytes from the end of the underlying memory.
If <code class="computeroutput">n</code> is greater than the size of the underlying memory,
the entire underlying memory is emptied. All constant or mutable
buffer sequences previously obtained using <code class="computeroutput">data()</code>
are invalidated.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.consume(n)</code>
</p>
</td>
<td>
</td>
<td>
<p>
Removes <code class="computeroutput">n</code> bytes from the beginning of the underlying
memory. If <code class="computeroutput">n</code> is greater than the size of the underlying
memory, the entire underlying memory is emptied. All constant or
mutable buffer sequences previously obtained using <code class="computeroutput">data()</code>
are invalidated.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="DynamicBuffer_v1.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Endpoint.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,263 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Endpoint requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">
<link rel="next" href="EndpointSequence.html" title="Endpoint sequence requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="DynamicBuffer_v2.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="EndpointSequence.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.Endpoint"></a><a class="link" href="Endpoint.html" title="Endpoint requirements">Endpoint requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">Endpoint</code> requirements if it
satisfies the requirements of <code class="computeroutput">Destructible</code> (C++Std [destructible]),
<code class="computeroutput">DefaultConstructible</code> (C++Std [defaultconstructible]), <code class="computeroutput">CopyConstructible</code>
(C++Std [copyconstructible]), and <code class="computeroutput">CopyAssignable</code> (C++Std [copyassignable]),
as well as the additional requirements listed below.
</p>
<p>
The default constructor and move operations of the type <code class="computeroutput">X</code> shall
not exit via an exception.
</p>
<p>
In the table below, <code class="computeroutput">a</code> denotes a (possibly const) value of type
<code class="computeroutput">X</code>, and <code class="computeroutput">u</code> denotes an identifier.
</p>
<div class="table">
<a name="boost_asio.reference.Endpoint.t0"></a><p class="title"><b>Table 11. Endpoint requirements</b></p>
<div class="table-contents"><table class="table" summary="Endpoint requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">X::protocol_type</code>
</p>
</td>
<td>
<p>
type meeting <a class="link" href="Protocol.html" title="Protocol requirements"><code class="computeroutput">Protocol</code></a>
requirements
</p>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.protocol()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">protocol_type</code>
</p>
</td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><p>
In the table below, <code class="computeroutput">a</code> denotes a (possibly const) value of type
<code class="computeroutput">X</code>, <code class="computeroutput">b</code> denotes a value of type <code class="computeroutput">X</code>, and
<code class="computeroutput">s</code> denotes a (possibly const) value of a type that is convertible
to <code class="computeroutput">size_t</code> and denotes a size in bytes.
</p>
<div class="table">
<a name="boost_asio.reference.Endpoint.t1"></a><p class="title"><b>Table 12. Endpoint requirements for extensible implementations</b></p>
<div class="table-contents"><table class="table" summary="Endpoint requirements for extensible implementations">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">a.data()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">const void*</code>
</p>
</td>
<td>
<p>
Returns a pointer suitable for passing as the <span class="emphasis"><em>address</em></span>
argument to functions such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/connect.html" target="_top"><code class="computeroutput"><span class="identifier">connect</span><span class="special">()</span></code></a>,
or as the <span class="emphasis"><em>dest_addr</em></span> argument to functions
such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/sendto.html" target="_top"><code class="computeroutput"><span class="identifier">sendto</span><span class="special">()</span></code></a>.
The implementation shall perform a <code class="computeroutput">static_cast</code> on
the pointer to convert it to <code class="computeroutput">const sockaddr*</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">b.data()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">void*</code>
</p>
</td>
<td>
<p>
Returns a pointer suitable for passing as the <span class="emphasis"><em>address</em></span>
argument to functions such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/accept.html" target="_top"><code class="computeroutput"><span class="identifier">accept</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getpeername.html" target="_top"><code class="computeroutput"><span class="identifier">getpeername</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getsockname.html" target="_top"><code class="computeroutput"><span class="identifier">getsockname</span><span class="special">()</span></code></a>
and <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/recvfrom.html" target="_top"><code class="computeroutput"><span class="identifier">recvfrom</span><span class="special">()</span></code></a>.
The implementation shall perform a <code class="computeroutput">static_cast</code> on
the pointer to convert it to <code class="computeroutput">sockaddr*</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.size()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>address_len</em></span>
argument to functions such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/connect.html" target="_top"><code class="computeroutput"><span class="identifier">connect</span><span class="special">()</span></code></a>,
or as the <span class="emphasis"><em>dest_len</em></span> argument to functions such
as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/sendto.html" target="_top"><code class="computeroutput"><span class="identifier">sendto</span><span class="special">()</span></code></a>,
after appropriate integer conversion has been performed.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">b.resize(s)</code>
</p>
</td>
<td>
</td>
<td>
<p>
pre: <code class="computeroutput">s &gt;= 0</code><br> post: <code class="computeroutput">a.size() == s</code><br>
Passed the value contained in the <span class="emphasis"><em>address_len</em></span>
argument to functions such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/accept.html" target="_top"><code class="computeroutput"><span class="identifier">accept</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getpeername.html" target="_top"><code class="computeroutput"><span class="identifier">getpeername</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getsockname.html" target="_top"><code class="computeroutput"><span class="identifier">getsockname</span><span class="special">()</span></code></a>
and <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/recvfrom.html" target="_top"><code class="computeroutput"><span class="identifier">recvfrom</span><span class="special">()</span></code></a>,
after successful completion of the function. Permitted to throw
an exception if the protocol associated with the endpoint object
<code class="computeroutput">a</code> does not support the specified size.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.capacity()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>address_len</em></span>
argument to functions such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/accept.html" target="_top"><code class="computeroutput"><span class="identifier">accept</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getpeername.html" target="_top"><code class="computeroutput"><span class="identifier">getpeername</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getsockname.html" target="_top"><code class="computeroutput"><span class="identifier">getsockname</span><span class="special">()</span></code></a>
and <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/recvfrom.html" target="_top"><code class="computeroutput"><span class="identifier">recvfrom</span><span class="special">()</span></code></a>,
after appropriate integer conversion has been performed.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="DynamicBuffer_v2.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="EndpointSequence.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,102 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Endpoint sequence requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="Endpoint.html" title="Endpoint requirements">
<link rel="next" href="ExecutionContext.html" title="Execution context requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Endpoint.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ExecutionContext.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.EndpointSequence"></a><a class="link" href="EndpointSequence.html" title="Endpoint sequence requirements">Endpoint sequence
requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">EndpointSequence</code> requirements
if it satisfies the requirements of <code class="computeroutput">Destructible</code> (C++Std [destructible])
and <code class="computeroutput">CopyConstructible</code> (C++Std [copyconstructible]), as well
as the additional requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">x</code> denotes a (possibly const) value of type
<code class="computeroutput">X</code>.
</p>
<div class="table">
<a name="boost_asio.reference.EndpointSequence.t0"></a><p class="title"><b>Table 13. EndpointSequence requirements</b></p>
<div class="table-contents"><table class="table" summary="EndpointSequence 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">x.begin()</code><br> <code class="computeroutput">x.end()</code>
</p>
</td>
<td>
<p>
A type meeting the requirements for forward iterators (C++Std [forward.iterators])
whose value type is convertible to a type satisfying the <a class="link" href="Endpoint.html" title="Endpoint requirements"><code class="computeroutput">Endpoint</code></a>
requirements.
</p>
</td>
<td>
<p>
[<code class="computeroutput">x.begin()</code>,<code class="computeroutput">x.end()</code>) is a valid range.
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Endpoint.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ExecutionContext.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,131 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Execution context requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="EndpointSequence.html" title="Endpoint sequence requirements">
<link rel="next" href="Executor1.html" title="Executor requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="EndpointSequence.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Executor1.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.ExecutionContext"></a><a class="link" href="ExecutionContext.html" title="Execution context requirements">Execution context
requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">ExecutionContext</code> requirements
if it is publicly and unambiguously derived from <code class="computeroutput">execution_context</code>,
and satisfies the additional requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">x</code> denotes a value of type <code class="computeroutput">X</code>.
</p>
<div class="table">
<a name="boost_asio.reference.ExecutionContext.t0"></a><p class="title"><b>Table 14. ExecutionContext requirements</b></p>
<div class="table-contents"><table class="table" summary="ExecutionContext 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">X::executor_type</code>
</p>
</td>
<td>
<p>
type meeting <a class="link" href="Executor1.html" title="Executor requirements"><code class="computeroutput">Executor</code></a>
requirements
</p>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.~X()</code>
</p>
</td>
<td>
</td>
<td>
<p>
Destroys all unexecuted function objects that were submitted via
an executor object that is associated with the execution context.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.get_executor()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">X::executor_type</code>
</p>
</td>
<td>
<p>
Returns an executor object that is associated with the execution
context.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="EndpointSequence.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Executor1.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,412 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Executor requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="ExecutionContext.html" title="Execution context requirements">
<link rel="next" href="GettableSerialPortOption.html" title="Gettable serial port option requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ExecutionContext.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="GettableSerialPortOption.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.Executor1"></a><a class="link" href="Executor1.html" title="Executor requirements">Executor requirements</a>
</h3></div></div></div>
<h5>
<a name="boost_asio.reference.Executor1.h0"></a>
<span class="phrase"><a name="boost_asio.reference.Executor1.standard_executors"></a></span><a class="link" href="Executor1.html#boost_asio.reference.Executor1.standard_executors">Standard
executors</a>
</h5>
<p>
Let <code class="computeroutput">executor-of-impl</code> be the exposition-only concept
</p>
<pre class="programlisting">template&lt;class E, class F&gt;
concept executor-of-impl =
invocable&lt;decay_t&lt;F&gt;&amp;&gt; &amp;&amp;
constructible_from&lt;decay_t&lt;F&gt;, F&gt; &amp;&amp;
move_constructible&lt;decay_t&lt;F&gt;&gt; &amp;&amp;
copy_constructible&lt;E&gt; &amp;&amp;
is_nothrow_copy_constructible_v&lt;E&gt; &amp;&amp;
equality_comparable&lt;E&gt; /* nothrow */ &amp;&amp;
requires(const E&amp; e, F&amp;&amp; f) {
execution::execute(e, (F&amp;&amp;)f);
};
</pre>
<p>
Then the <code class="computeroutput">executor</code> and <code class="computeroutput">executor_of</code> concepts are
defined as follows:
</p>
<pre class="programlisting">template&lt;class E&gt;
concept executor =
executor-of-impl&lt;E, execution::invocable_archetype&gt;;
template&lt;class E, class F&gt;
concept executor_of =
executor&lt;E&gt; &amp;&amp;
executor-of-impl&lt;E, F&gt;;
</pre>
<p>
Neither an executor's equality comparison nor <code class="computeroutput">swap</code> operation
shall exit via an exception.
</p>
<p>
None of an executor type's copy constructor, destructor, equality comparison,
<code class="computeroutput">swap</code> function, <code class="computeroutput">execute</code> function, or associated
<code class="computeroutput">query</code> functions shall introduce data races as a result of concurrent
invocations of those functions from different threads.
</p>
<p>
For any two (possibly const) values <code class="computeroutput">x1</code> and <code class="computeroutput">x2</code> of
some executor type <code class="computeroutput">X</code>, <code class="computeroutput">x1 == x2</code> shall return <code class="computeroutput">true</code>
only if <code class="computeroutput">boost::asio::query(x1,p) == boost::asio::query(x2,p)</code>
for every property <code class="computeroutput">p</code> where both <code class="computeroutput">boost::asio::query(x1,p)</code>
and <code class="computeroutput">boost::asio::query(x2,p)</code> are well-formed and result in a
non-void type that is <code class="computeroutput">equality_comparable</code> (C++Std [equalitycomparable]).
[<span class="emphasis"><em>Note:</em></span> The above requirements imply that <code class="computeroutput">x1 ==
x2</code> returns <code class="computeroutput">true</code> if <code class="computeroutput">x1</code> and <code class="computeroutput">x2</code>
can be interchanged with identical effects. An executor may conceptually
contain additional properties which are not exposed by a named property type
that can be observed via <code class="computeroutput">boost::asio::query</code>; in this case, it
is up to the concrete executor implementation to decide if these properties
affect equality. Returning <code class="computeroutput">false</code> does not necessarily imply
that the effects are not identical. —<span class="emphasis"><em>end note</em></span>]
</p>
<p>
An executor type's destructor shall not block pending completion of the submitted
function objects. [<span class="emphasis"><em>Note:</em></span> The ability to wait for completion
of submitted function objects may be provided by the associated execution
context. —<span class="emphasis"><em>end note</em></span>]
</p>
<p>
In addition to the above requirements, types <code class="computeroutput">E</code> and <code class="computeroutput">F</code>
model <code class="computeroutput">executor_of</code> only if they satisfy the requirements of the
Table below.
</p>
<p>
Let:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="computeroutput">e</code> denotes a (possibly const) executor object of type <code class="computeroutput">E</code>,
</li>
<li class="listitem">
<code class="computeroutput">cf</code> denotes the function object <code class="computeroutput">DECAY_COPY(std::forward&lt;F&gt;(f))</code>
</li>
<li class="listitem">
<code class="computeroutput">f</code> denotes a function of type <code class="computeroutput">F&amp;&amp;</code> invocable
as <code class="computeroutput">cf()</code> and where <code class="computeroutput">decay_t&lt;F&gt;</code> models
<code class="computeroutput">move_constructible</code>.
</li>
</ul></div>
<p>
The expression <code class="computeroutput">execution::execute(e, f)</code>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Evaluates <code class="computeroutput">DECAY_COPY(std::forward&lt;F&gt;(f))</code> on the calling
thread to create <code class="computeroutput">cf</code> that will be invoked at most once by
an execution agent.
</li>
<li class="listitem">
May block pending completion of this invocation. Synchronizes with [intro.multithread]
the invocation of <code class="computeroutput">f</code>.
</li>
<li class="listitem">
Shall not propagate any exception thrown by the function object or any
other function submitted to the executor.
</li>
</ul></div>
<p>
[<span class="emphasis"><em>Note:</em></span> The treatment of exceptions thrown by one-way
submitted functions is implementation-defined. The forward progress guarantee
of the associated execution agent(s) is implementation-defined. —<span class="emphasis"><em>end
note</em></span>]
</p>
<h5>
<a name="boost_asio.reference.Executor1.h1"></a>
<span class="phrase"><a name="boost_asio.reference.Executor1.networking_ts_style_executors"></a></span><a class="link" href="Executor1.html#boost_asio.reference.Executor1.networking_ts_style_executors">Networking
TS-style executors</a>
</h5>
<p>
The library describes a standard set of requirements for <span class="emphasis"><em>executors</em></span>.
A type meeting the <code class="computeroutput">Executor</code> requirements embodies a set of rules
for determining how submitted function objects are to be executed.
</p>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">Executor</code> requirements if it
satisfies the requirements of <code class="computeroutput">CopyConstructible</code> (C++Std [copyconstructible])
and <code class="computeroutput">Destructible</code> (C++Std [destructible]), as well as the additional
requirements listed below.
</p>
<p>
No constructor, comparison operator, copy operation, move operation, swap
operation, or member functions <code class="computeroutput">context</code>, <code class="computeroutput">on_work_started</code>,
and <code class="computeroutput">on_work_finished</code> on these types shall exit via an exception.
</p>
<p>
The executor copy constructor, comparison operators, and other member functions
defined in these requirements shall not introduce data races as a result
of concurrent calls to those functions from different threads.
</p>
<p>
Let <code class="computeroutput">ctx</code> be the execution context returned by the executor's
<code class="computeroutput">context()</code> member function. An executor becomes <span class="emphasis"><em>invalid</em></span>
when the first call to <code class="computeroutput">ctx.shutdown()</code> returns. The effect of
calling <code class="computeroutput">on_work_started</code>, <code class="computeroutput">on_work_finished</code>, <code class="computeroutput">dispatch</code>,
<code class="computeroutput">post</code>, or <code class="computeroutput">defer</code> on an invalid executor is undefined.
[<span class="emphasis"><em>Note:</em></span> The copy constructor, comparison operators, and
<code class="computeroutput">context()</code> member function continue to remain valid until <code class="computeroutput">ctx</code>
is destroyed. —<span class="emphasis"><em>end note</em></span>]
</p>
<p>
In the table below, <code class="computeroutput">x1</code> and <code class="computeroutput">x2</code> denote (possibly
const) values of type <code class="computeroutput">X</code>, <code class="computeroutput">mx1</code> denotes an xvalue
of type <code class="computeroutput">X</code>, <code class="computeroutput">f</code> denotes a <code class="computeroutput">MoveConstructible</code>
(C++Std [moveconstructible]) function object callable with zero arguments,
<code class="computeroutput">a</code> denotes a (possibly const) value of type <code class="computeroutput">A</code> meeting
the <code class="computeroutput">Allocator</code> requirements (C++Std [allocator.requirements]),
and <code class="computeroutput">u</code> denotes an identifier.
</p>
<div class="table">
<a name="boost_asio.reference.Executor1.t0"></a><p class="title"><b>Table 15. Executor requirements</b></p>
<div class="table-contents"><table class="table" summary="Executor requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">X u(x1);</code>
</p>
</td>
<td>
</td>
<td>
<p>
Shall not exit via an exception.<br> <br> post: <code class="computeroutput">u ==
x1</code> and <code class="computeroutput">std::addressof(u.context()) == std::addressof(x1.context()).</code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X u(mx1);</code>
</p>
</td>
<td>
</td>
<td>
<p>
Shall not exit via an exception.<br> <br> post: <code class="computeroutput">u</code>
equals the prior value of <code class="computeroutput">mx1</code> and <code class="computeroutput">std::addressof(u.context())</code>
equals the prior value of <code class="computeroutput">std::addressof(mx1.context())</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1 == x2</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">bool</code>
</p>
</td>
<td>
<p>
Returns <code class="computeroutput">true</code> only if <code class="computeroutput">x1</code> and <code class="computeroutput">x2</code>
can be interchanged with identical effects in any of the expressions
defined in these type requirements. [<span class="emphasis"><em>Note:</em></span>
Returning <code class="computeroutput">false</code> does not necessarily imply that the
effects are not identical. —<span class="emphasis"><em>end note</em></span>] <br>
<br> <code class="computeroutput">operator==</code> shall be reflexive, symmetric, and
transitive, and shall not exit via an exception.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1 != x2</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">bool</code>
</p>
</td>
<td>
<p>
Same as <code class="computeroutput">!(x1 == x2)</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.context()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">execution_context&amp;</code>, or <code class="computeroutput">E&amp;</code> where
<code class="computeroutput">E</code> is a type that satifisfies the <a class="link" href="ExecutionContext.html" title="Execution context requirements"><code class="computeroutput">ExecutionContext</code></a>
requirements.
</p>
</td>
<td>
<p>
Shall not exit via an exception.<br> <br> The comparison operators
and member functions defined in these requirements shall not alter
the reference returned by this function.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.on_work_started()</code>
</p>
</td>
<td>
</td>
<td>
<p>
Shall not exit via an exception.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.on_work_finished()</code>
</p>
</td>
<td>
</td>
<td>
<p>
Shall not exit via an exception.<br> <br> Precondition: A preceding
call <code class="computeroutput">x2.on_work_started()</code> where <code class="computeroutput">x1 == x2</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.dispatch(std::move(f),a)</code>
</p>
</td>
<td>
</td>
<td>
<p>
Effects: Creates an object <code class="computeroutput">f1</code> initialized with <code class="literal"><span class="emphasis"><em>DECAY_COPY</em></span></code><code class="computeroutput">(forward&lt;Func&gt;(f))</code>
(C++Std [thread.decaycopy]) in the current thread of execution
. Calls <code class="computeroutput">f1()</code> at most once. The executor may block
forward progress of the caller until <code class="computeroutput">f1()</code> finishes
execution.<br> <br> Executor implementations should use the
supplied allocator to allocate any memory required to store the
function object. Prior to invoking the function object, the executor
shall deallocate any memory allocated. [<span class="emphasis"><em>Note:</em></span>
Executors defined in this Technical Specification always use the
supplied allocator unless otherwise specified. —<span class="emphasis"><em>end note</em></span>]
<br> <br> Synchronization: The invocation of <code class="computeroutput">dispatch</code>
synchronizes with (C++Std [intro.multithread]) the invocation of
<code class="computeroutput">f1</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.post(std::move(f),a)</code><br> <code class="computeroutput">x1.defer(std::move(f),a)</code>
</p>
</td>
<td>
</td>
<td>
<p>
Effects: Creates an object <code class="computeroutput">f1</code> initialized with <code class="literal"><span class="emphasis"><em>DECAY_COPY</em></span></code><code class="computeroutput">(forward&lt;Func&gt;(f))</code>
in the current thread of execution. Calls <code class="computeroutput">f1()</code> at
most once. The executor shall not block forward progress of the
caller pending completion of <code class="computeroutput">f1()</code>.<br> <br> Executor
implementations should use the supplied allocator to allocate any
memory required to store the function object. Prior to invoking
the function object, the executor shall deallocate any memory allocated.
[<span class="emphasis"><em>Note:</em></span> Executors defined in this Technical
Specification always use the supplied allocator unless otherwise
specified. —<span class="emphasis"><em>end note</em></span>] <br> <br> Synchronization:
The invocation of <code class="computeroutput">post</code> or <code class="computeroutput">defer</code> synchronizes
with (C++Std [intro.multithread]) the invocation of <code class="computeroutput">f1</code>.<br>
<br> [<span class="emphasis"><em>Note:</em></span> Although the requirements placed
on <code class="computeroutput">defer</code> are identical to <code class="computeroutput">post</code>, the use
of <code class="computeroutput">post</code> conveys a preference that the caller <span class="emphasis"><em>does
not</em></span> block the first step of <code class="literal">f1</code>'s
progress, whereas <code class="computeroutput">defer</code> conveys a preference that
the caller <span class="emphasis"><em>does</em></span> block the first step of <code class="literal">f1</code>.
One use of <code class="computeroutput">defer</code> is to convey the intention of the
caller that <code class="literal">f1</code> is a continuation of the current
call context. The executor may use this information to optimize
or otherwise adjust the way in which <code class="computeroutput">f1</code> is invoked.
<span class="emphasis"><em>end note</em></span>]
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ExecutionContext.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="GettableSerialPortOption.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,102 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Gettable serial port option requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="Executor1.html" title="Executor requirements">
<link rel="next" href="GettableSocketOption.html" title="Gettable socket option requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Executor1.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="GettableSocketOption.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.GettableSerialPortOption"></a><a class="link" href="GettableSerialPortOption.html" title="Gettable serial port option requirements">Gettable
serial port option requirements</a>
</h3></div></div></div>
<p>
In the table below, <code class="computeroutput">X</code> denotes a serial port option class, <code class="computeroutput">a</code>
denotes a value of <code class="computeroutput">X</code>, <code class="computeroutput">ec</code> denotes a value of type
<code class="computeroutput">error_code</code>, and <code class="computeroutput">s</code> denotes a value of implementation-defined
type <span class="emphasis"><em><code class="literal">storage</code></em></span> (where <span class="emphasis"><em><code class="literal">storage</code></em></span>
is the type <code class="computeroutput">DCB</code> on Windows and <code class="computeroutput">termios</code> on <span class="emphasis"><em>POSIX</em></span>
platforms), and <code class="computeroutput">u</code> denotes an identifier.
</p>
<div class="table">
<a name="boost_asio.reference.GettableSerialPortOption.t0"></a><p class="title"><b>Table 16. GettableSerialPortOption requirements</b></p>
<div class="table-contents"><table class="table" summary="GettableSerialPortOption requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-conditions
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput">const </code><span class="emphasis"><em><code class="literal">storage</code></em></span><code class="computeroutput">&amp;
u = s;</code><br> <code class="computeroutput">a.load(u, ec);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">error_code</code>
</p>
</td>
<td>
<p>
Retrieves the value of the serial port option from the storage.<br>
<br> If successful, sets <code class="computeroutput">ec</code> such that <code class="computeroutput">!ec</code>
is true. If an error occurred, sets <code class="computeroutput">ec</code> such that
<code class="computeroutput">!!ec</code> is true. Returns <code class="computeroutput">ec</code>.
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Executor1.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="GettableSocketOption.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,182 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Gettable socket option requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="GettableSerialPortOption.html" title="Gettable serial port option requirements">
<link rel="next" href="Handler.html" title="Handlers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="GettableSerialPortOption.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Handler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.GettableSocketOption"></a><a class="link" href="GettableSocketOption.html" title="Gettable socket option requirements">Gettable socket
option requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">GettableSocketOption</code> requirements
if it satisfies the requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">a</code> denotes a (possibly const) value of type
<code class="computeroutput">X</code>, <code class="computeroutput">b</code> denotes a value of type <code class="computeroutput">X</code>, <code class="computeroutput">p</code>
denotes a (possibly const) value that meets the <a class="link" href="Protocol.html" title="Protocol requirements"><code class="computeroutput">Protocol</code></a>
requirements, and <code class="computeroutput">s</code> denotes a (possibly const) value of a type
that is convertible to <code class="computeroutput">size_t</code> and denotes a size in bytes.
</p>
<div class="table">
<a name="boost_asio.reference.GettableSocketOption.t0"></a><p class="title"><b>Table 17. GettableSocketOption requirements for extensible implementations</b></p>
<div class="table-contents"><table class="table" summary="GettableSocketOption requirements for extensible implementations">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">a.level(p)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">int</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>level</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html" target="_top"><code class="computeroutput"><span class="identifier">getsockopt</span><span class="special">()</span></code></a>
(or equivalent).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.name(p)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">int</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>option_name</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html" target="_top"><code class="computeroutput"><span class="identifier">getsockopt</span><span class="special">()</span></code></a>
(or equivalent).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">b.data(p)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">void*</code>
</p>
</td>
<td>
<p>
Returns a pointer suitable for passing as the <span class="emphasis"><em>option_value</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html" target="_top"><code class="computeroutput"><span class="identifier">getsockopt</span><span class="special">()</span></code></a>
(or equivalent).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.size(p)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>option_len</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html" target="_top"><code class="computeroutput"><span class="identifier">getsockopt</span><span class="special">()</span></code></a>
(or equivalent), after appropriate integer conversion has been
performed.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">b.resize(p,s)</code>
</p>
</td>
<td>
</td>
<td>
<p>
post: <code class="computeroutput">b.size(p) == s</code>.<br> Passed the value contained
in the <span class="emphasis"><em>option_len</em></span> argument to <span class="emphasis"><em>POSIX</em></span>
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html" target="_top"><code class="computeroutput"><span class="identifier">getsockopt</span><span class="special">()</span></code></a>
(or equivalent) after successful completion of the function. Permitted
to throw an exception if the socket option object <code class="computeroutput">b</code>
does not support the specified size.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="GettableSerialPortOption.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Handler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,157 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Handlers</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="GettableSocketOption.html" title="Gettable socket option requirements">
<link rel="next" href="HandshakeHandler.html" title="SSL handshake handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="GettableSocketOption.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="HandshakeHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.Handler"></a><a class="link" href="Handler.html" title="Handlers">Handlers</a>
</h3></div></div></div>
<p>
A handler must meet the requirements of <code class="computeroutput">MoveConstructible</code> types
(C++Std [moveconstructible]).
</p>
<p>
In the table below, <code class="computeroutput">X</code> denotes a handler class, <code class="computeroutput">h</code>
denotes a value of <code class="computeroutput">X</code>, <code class="computeroutput">p</code> denotes a pointer to a
block of allocated memory of type <code class="computeroutput">void*</code>, <code class="computeroutput">s</code> denotes
the size for a block of allocated memory, and <code class="computeroutput">f</code> denotes a function
object taking no arguments.
</p>
<div class="table">
<a name="boost_asio.reference.Handler.t0"></a><p class="title"><b>Table 18. Handler requirements</b></p>
<div class="table-contents"><table class="table" summary="Handler 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-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
</p>
<pre class="programlisting">using boost::asio::asio_handler_allocate;
asio_handler_allocate(s, &amp;h);
</pre>
<p>
</p>
</td>
<td>
<p>
<code class="computeroutput">void*</code>
</p>
</td>
<td>
<p>
Returns a pointer to a block of memory of size <code class="computeroutput">s</code>.
The pointer must satisfy the same alignment requirements as a pointer
returned by <code class="computeroutput">::operator new()</code>. Throws <code class="computeroutput">bad_alloc</code>
on failure.<br> <br> The <code class="computeroutput">asio_handler_allocate()</code>
function is located using argument-dependent lookup. The function
<code class="computeroutput">boost::asio::asio_handler_allocate()</code> serves as a default
if no user-supplied function is available.
</p>
</td>
</tr>
<tr>
<td>
<p>
</p>
<pre class="programlisting">using boost::asio::asio_handler_deallocate;
asio_handler_deallocate(p, s, &amp;h);
</pre>
<p>
</p>
</td>
<td>
</td>
<td>
<p>
Frees a block of memory associated with a pointer <code class="computeroutput">p</code>,
of at least size <code class="computeroutput">s</code>, that was previously allocated
using <code class="computeroutput">asio_handler_allocate()</code>.<br> <br> The <code class="computeroutput">asio_handler_deallocate()</code>
function is located using argument-dependent lookup. The function
<code class="computeroutput">boost::asio::asio_handler_deallocate()</code> serves as a
default if no user-supplied function is available.
</p>
</td>
</tr>
<tr>
<td>
<p>
</p>
<pre class="programlisting">using boost::asio::asio_handler_invoke;
asio_handler_invoke(f, &amp;h);
</pre>
<p>
</p>
</td>
<td>
</td>
<td>
<p>
Causes the function object <code class="computeroutput">f</code> to be executed as if
by calling <code class="computeroutput">f()</code>.<br> <br> The <code class="computeroutput">asio_handler_invoke()</code>
function is located using argument-dependent lookup. The function
<code class="computeroutput">boost::asio::asio_handler_invoke()</code> serves as a default
if no user-supplied function is available.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="GettableSocketOption.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="HandshakeHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,115 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SSL handshake handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="Handler.html" title="Handlers">
<link rel="next" href="InternetProtocol.html" title="Internet protocol requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Handler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="InternetProtocol.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.HandshakeHandler"></a><a class="link" href="HandshakeHandler.html" title="SSL handshake handler requirements">SSL handshake
handler requirements</a>
</h3></div></div></div>
<p>
A handshake handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a handshake handler class should work correctly
in the expression <code class="computeroutput">h(ec)</code>, where <code class="computeroutput">ec</code> is an lvalue
of type <code class="computeroutput">const error_code</code>.
</p>
<h5>
<a name="boost_asio.reference.HandshakeHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.HandshakeHandler.examples"></a></span><a class="link" href="HandshakeHandler.html#boost_asio.reference.HandshakeHandler.examples">Examples</a>
</h5>
<p>
A free function as a handshake handler:
</p>
<pre class="programlisting">void handshake_handler(
const boost::system::error_code&amp; ec)
{
...
}
</pre>
<p>
A handshake handler function object:
</p>
<pre class="programlisting">struct handshake_handler
{
...
void operator()(
const boost::system::error_code&amp; ec)
{
...
}
...
};
</pre>
<p>
A lambda as a handshake handler:
</p>
<pre class="programlisting">ssl_stream.async_handshake(...,
[](const boost::system::error_code&amp; ec)
{
...
});
</pre>
<p>
A non-static class member function adapted to a handshake handler using
<code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::handshake_handler(
const boost::system::error_code&amp; ec)
{
...
}
...
ssl_stream.async_handshake(...,
std::bind(&amp;my_class::handshake_handler,
this, std::placeholders::_1));
</pre>
<p>
A non-static class member function adapted to a handshake handler using
<code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::handshake_handler(
const boost::system::error_code&amp; ec)
{
...
}
...
ssl_stream.async_handshake(...,
boost::bind(&amp;my_class::handshake_handler,
this, boost::asio::placeholders::error));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Handler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="InternetProtocol.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,171 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Internet protocol requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="HandshakeHandler.html" title="SSL handshake handler requirements">
<link rel="next" href="IoControlCommand.html" title="I/O control command requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="HandshakeHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="IoControlCommand.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.InternetProtocol"></a><a class="link" href="InternetProtocol.html" title="Internet protocol requirements">Internet protocol
requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">InternetProtocol</code> requirements
if it satisfies the requirements of <a class="link" href="AcceptableProtocol.html" title="Acceptable protocol requirements"><code class="computeroutput">AcceptableProtocol</code></a>,
as well as the additional requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">a</code> denotes a (possibly const) value of type
<code class="computeroutput">X</code>, and <code class="computeroutput">b</code> denotes a (possibly const) value of type
<code class="computeroutput">X</code>.
</p>
<div class="table">
<a name="boost_asio.reference.InternetProtocol.t0"></a><p class="title"><b>Table 19. InternetProtocol requirements</b></p>
<div class="table-contents"><table class="table" summary="InternetProtocol 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-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">X::resolver</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">ip::basic_resolver&lt;X&gt;</code>
</p>
</td>
<td>
<p>
The type of a resolver for the protocol.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::v4()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">X</code>
</p>
</td>
<td>
<p>
Returns an object representing the IP version 4 protocol.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::v6()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">X</code>
</p>
</td>
<td>
<p>
Returns an object representing the IP version 6 protocol.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a == b</code>
</p>
</td>
<td>
<p>
convertible to <code class="computeroutput">bool</code>
</p>
</td>
<td>
<p>
Returns <code class="computeroutput">true</code> if <code class="computeroutput">a</code> and <code class="computeroutput">b</code>
represent the same IP protocol version, otherwise <code class="computeroutput">false</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a != b</code>
</p>
</td>
<td>
<p>
convertible to <code class="computeroutput">bool</code>
</p>
</td>
<td>
<p>
Returns <code class="computeroutput">!(a == b)</code>.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="HandshakeHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="IoControlCommand.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,116 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>I/O control command requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="InternetProtocol.html" title="Internet protocol requirements">
<link rel="next" href="IoObjectService.html" title="I/O object service requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="InternetProtocol.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="IoObjectService.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.IoControlCommand"></a><a class="link" href="IoControlCommand.html" title="I/O control command requirements">I/O control command
requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">IoControlCommand</code> requirements
if it satisfies the requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">a</code> denotes a (possibly const) value of type
<code class="computeroutput">X</code>, and <code class="computeroutput">b</code> denotes a value of type <code class="computeroutput">X</code>.
</p>
<div class="table">
<a name="boost_asio.reference.IoControlCommand.t0"></a><p class="title"><b>Table 20. IoControlCommand requirements for extensible implementations</b></p>
<div class="table-contents"><table class="table" summary="IoControlCommand requirements for extensible implementations">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">a.name()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">int</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>request</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/ioctl.html" target="_top"><code class="computeroutput"><span class="identifier">ioctl</span><span class="special">()</span></code></a>
(or equivalent).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">b.data()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">void*</code>
</p>
</td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="InternetProtocol.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="IoObjectService.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,178 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>I/O object service requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="IoControlCommand.html" title="I/O control command requirements">
<link rel="next" href="IteratorConnectHandler.html" title="Iterator connect handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="IoControlCommand.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="IteratorConnectHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.IoObjectService"></a><a class="link" href="IoObjectService.html" title="I/O object service requirements">I/O object service
requirements</a>
</h3></div></div></div>
<p>
An I/O object service must meet the requirements for a <a class="link" href="Service.html" title="Service requirements">service</a>,
as well as the requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">X</code> denotes an I/O object service class,
<code class="computeroutput">a</code> and <code class="computeroutput">ao</code> denote values of type <code class="computeroutput">X</code>,
<code class="computeroutput">b</code> and <code class="computeroutput">c</code> denote values of type <code class="computeroutput">X::implementation_type</code>,
and <code class="computeroutput">u</code> denotes an identifier.
</p>
<div class="table">
<a name="boost_asio.reference.IoObjectService.t0"></a><p class="title"><b>Table 21. IoObjectService requirements</b></p>
<div class="table-contents"><table class="table" summary="IoObjectService 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">X::implementation_type</code>
</p>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::implementation_type u;</code>
</p>
</td>
<td>
</td>
<td>
<p>
note: <code class="computeroutput">X::implementation_type</code> has a public default
constructor and destructor.
</p>
</td>
</tr>
<tr>
<td>
<p>
</p>
<pre class="programlisting">a.construct(b);
</pre>
<p>
</p>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
</p>
<pre class="programlisting">a.destroy(b);
</pre>
<p>
</p>
</td>
<td>
</td>
<td>
<p>
note: <code class="computeroutput">destroy()</code> will only be called on a value that
has previously been initialised with <code class="computeroutput">construct()</code> or
<code class="computeroutput">move_construct()</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
</p>
<pre class="programlisting">a.move_construct(b, c);
</pre>
<p>
</p>
</td>
<td>
</td>
<td>
<p>
note: only required for I/O objects that support movability.
</p>
</td>
</tr>
<tr>
<td>
<p>
</p>
<pre class="programlisting">a.move_assign(b, ao, c);
</pre>
<p>
</p>
</td>
<td>
</td>
<td>
<p>
note: only required for I/O objects that support movability.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="IoControlCommand.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="IteratorConnectHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,125 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Iterator connect handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="IoObjectService.html" title="I/O object service requirements">
<link rel="next" href="LegacyCompletionHandler.html" title="Legacy completion handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="IoObjectService.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="LegacyCompletionHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.IteratorConnectHandler"></a><a class="link" href="IteratorConnectHandler.html" title="Iterator connect handler requirements">Iterator
connect handler requirements</a>
</h3></div></div></div>
<p>
An iterator connect handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of an iterator connect handler class should work correctly
in the expression <code class="computeroutput">h(ec, i)</code>, where <code class="computeroutput">ec</code> is an lvalue
of type <code class="computeroutput">const error_code</code> and <code class="computeroutput">i</code> is an lvalue of
the type <code class="computeroutput">Iterator</code> used in the corresponding <code class="computeroutput">connect()</code>
or async_connect()` function.
</p>
<h5>
<a name="boost_asio.reference.IteratorConnectHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.IteratorConnectHandler.examples"></a></span><a class="link" href="IteratorConnectHandler.html#boost_asio.reference.IteratorConnectHandler.examples">Examples</a>
</h5>
<p>
A free function as an iterator connect handler:
</p>
<pre class="programlisting">void connect_handler(
const boost::system::error_code&amp; ec,
boost::asio::ip::tcp::resolver::iterator iterator)
{
...
}
</pre>
<p>
An iterator connect handler function object:
</p>
<pre class="programlisting">struct connect_handler
{
...
template &lt;typename Iterator&gt;
void operator()(
const boost::system::error_code&amp; ec,
Iterator iterator)
{
...
}
...
};
</pre>
<p>
A lambda as an iterator connect handler:
</p>
<pre class="programlisting">boost::asio::async_connect(...,
[](const boost::system::error_code&amp; ec,
boost::asio::ip::tcp::resolver::iterator iterator)
{
...
});
</pre>
<p>
A non-static class member function adapted to an iterator connect handler
using <code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::connect_handler(
const boost::system::error_code&amp; ec,
boost::asio::ip::tcp::resolver::iterator iterator)
{
...
}
...
boost::asio::async_connect(...,
std::bind(&amp;my_class::connect_handler,
this, std::placeholders::_1,
std::placeholders::_2));
</pre>
<p>
A non-static class member function adapted to an iterator connect handler
using <code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::connect_handler(
const boost::system::error_code&amp; ec,
boost::asio::ip::tcp::resolver::iterator iterator)
{
...
}
...
boost::asio::async_connect(...,
boost::bind(&amp;my_class::connect_handler,
this, boost::asio::placeholders::error,
boost::asio::placeholders::iterator));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="IoObjectService.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="LegacyCompletionHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,107 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Legacy completion handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="IteratorConnectHandler.html" title="Iterator connect handler requirements">
<link rel="next" href="MoveAcceptHandler.html" title="Move accept handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="IteratorConnectHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="MoveAcceptHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.LegacyCompletionHandler"></a><a class="link" href="LegacyCompletionHandler.html" title="Legacy completion handler requirements">Legacy
completion handler requirements</a>
</h3></div></div></div>
<p>
A legacy completion handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A legacy completion handler must meet the requirements of <code class="computeroutput">CopyConstructible</code>
types (C++Std [copyconstructible]). A value <code class="computeroutput">h</code> of a completion
handler class should work correctly in the expression <code class="computeroutput">h()</code>.
</p>
<h5>
<a name="boost_asio.reference.LegacyCompletionHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.LegacyCompletionHandler.examples"></a></span><a class="link" href="LegacyCompletionHandler.html#boost_asio.reference.LegacyCompletionHandler.examples">Examples</a>
</h5>
<p>
A free function as a completion handler:
</p>
<pre class="programlisting">void completion_handler()
{
...
}
</pre>
<p>
A completion handler function object:
</p>
<pre class="programlisting">struct completion_handler
{
...
void operator()()
{
...
}
...
};
</pre>
<p>
A lambda as a completion handler:
</p>
<pre class="programlisting">my_io_service.post(
[]()
{
...
});
</pre>
<p>
A non-static class member function adapted to a completion handler using
<code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::completion_handler()
{
...
}
...
my_io_service.post(std::bind(&amp;my_class::completion_handler, this));
</pre>
<p>
A non-static class member function adapted to a completion handler using
<code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::completion_handler()
{
...
}
...
my_io_service.post(boost::bind(&amp;my_class::completion_handler, this));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="IteratorConnectHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="MoveAcceptHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,104 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Move accept handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="LegacyCompletionHandler.html" title="Legacy completion handler requirements">
<link rel="next" href="MutableBufferSequence.html" title="Mutable buffer sequence requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="LegacyCompletionHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="MutableBufferSequence.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.MoveAcceptHandler"></a><a class="link" href="MoveAcceptHandler.html" title="Move accept handler requirements">Move accept handler
requirements</a>
</h3></div></div></div>
<p>
A move accept handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a move accept handler class should work correctly
in the expression <code class="computeroutput">h(ec, s)</code>, where <code class="computeroutput">ec</code> is an lvalue
of type <code class="computeroutput">const error_code</code> and <code class="computeroutput">s</code> is an lvalue of
the nested type <code class="computeroutput">Protocol::socket</code> for the type <code class="computeroutput">Protocol</code>
of the socket class template.
</p>
<h5>
<a name="boost_asio.reference.MoveAcceptHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.MoveAcceptHandler.examples"></a></span><a class="link" href="MoveAcceptHandler.html#boost_asio.reference.MoveAcceptHandler.examples">Examples</a>
</h5>
<p>
A free function as a move accept handler:
</p>
<pre class="programlisting">void accept_handler(
const boost::system::error_code&amp; ec, boost::asio::ip::tcp::socket s)
{
...
}
</pre>
<p>
A move accept handler function object:
</p>
<pre class="programlisting">struct accept_handler
{
...
void operator()(
const boost::system::error_code&amp; ec, boost::asio::ip::tcp::socket s)
{
...
}
...
};
</pre>
<p>
A lambda as a move accept handler:
</p>
<pre class="programlisting">acceptor.async_accept(...,
[](const boost::system::error_code&amp; ec, boost::asio::ip::tcp::socket s)
{
...
});
</pre>
<p>
A non-static class member function adapted to a move accept handler using
<code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::accept_handler(
const boost::system::error_code&amp; ec, boost::asio::ip::tcp::socket socket)
{
...
}
...
boost::asio::async_accept(...,
std::bind(&amp;my_class::accept_handler,
this, std::placeholders::_1,
std::placeholders::_2));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="LegacyCompletionHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="MutableBufferSequence.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,137 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Mutable buffer sequence requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="MoveAcceptHandler.html" title="Move accept handler requirements">
<link rel="next" href="OperationState.html" title="Operation state concept">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="MoveAcceptHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="OperationState.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.MutableBufferSequence"></a><a class="link" href="MutableBufferSequence.html" title="Mutable buffer sequence requirements">Mutable buffer
sequence requirements</a>
</h3></div></div></div>
<p>
A <span class="emphasis"><em>mutable buffer sequence</em></span> represents a set of memory
regions that may be used to receive the output of an operation, such as the
<code class="computeroutput">receive</code> operation of a socket.
</p>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">MutableBufferSequence</code> requirements
if it satisfies the requirements of <code class="computeroutput">Destructible</code> (C++Std [destructible])
and <code class="computeroutput">CopyConstructible</code> (C++Std [copyconstructible]), as well
as the additional requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">x</code> denotes a (possibly const) value of type
<code class="computeroutput">X</code>, and <code class="computeroutput">u</code> denotes an identifier.
</p>
<div class="table">
<a name="boost_asio.reference.MutableBufferSequence.t0"></a><p class="title"><b>Table 22. MutableBufferSequence requirements</b></p>
<div class="table-contents"><table class="table" summary="MutableBufferSequence 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">boost::asio::buffer_sequence_begin(x)</code><br> <code class="computeroutput">boost::asio::buffer_sequence_end(x)</code>
</p>
</td>
<td>
<p>
An iterator type meeting the requirements for bidirectional iterators
(C++Std [bidirectional.iterators]) whose value type is convertible
to <code class="computeroutput">mutable_buffer</code>.
</p>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
</p>
<pre class="programlisting">X u(x);
</pre>
<p>
</p>
</td>
<td>
</td>
<td>
<p>
post:<br>
</p>
<pre class="programlisting">equal(
boost::asio::buffer_sequence_begin(x),
boost::asio::buffer_sequence_end(x),
boost::asio::buffer_sequence_begin(u),
boost::asio::buffer_sequence_end(u),
[](const mutable_buffer&amp; b1,
const mutable_buffer&amp; b2)
{
return b1.data() == b2.data()
&amp;&amp; b1.size() == b2.size();
})
</pre>
<p>
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="MoveAcceptHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="OperationState.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,74 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Operation state concept</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="MutableBufferSequence.html" title="Mutable buffer sequence requirements">
<link rel="next" href="ProtoAllocator.html" title="Proto-allocator requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="MutableBufferSequence.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ProtoAllocator.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.OperationState"></a><a class="link" href="OperationState.html" title="Operation state concept">Operation state
concept</a>
</h3></div></div></div>
<pre class="programlisting">template&lt;class O&gt;
concept operation_state =
destructible&lt;O&gt; &amp;&amp;
is_object_v&lt;O&gt; &amp;&amp;
requires (O&amp; o) {
{ execution::start(o) } noexcept;
};
</pre>
<p>
An object whose type satisfies <code class="computeroutput">operation_state</code> represents the
state of an asynchronous operation. It is the result of calling <code class="computeroutput">execution::connect</code>
with a <code class="computeroutput">sender</code> and a <code class="computeroutput">receiver</code>.
</p>
<p>
<code class="computeroutput">execution::start</code> may be called on an <code class="computeroutput">operation_state</code>
object at most once. Once <code class="computeroutput">execution::start</code> has been invoked,
the caller shall ensure that the start of a non-exceptional invocation of
one of the receiver's completion-signalling operations strongly happens before
[intro.multithread] the call to the <code class="computeroutput">operation_state</code> destructor.
</p>
<p>
The start of the invocation of <code class="computeroutput">execution::start</code> shall strongly
happen before [intro.multithread] the invocation of one of the three receiver
operations.
</p>
<p>
<code class="computeroutput">execution::start</code> may or may not block pending the successful
transfer of execution to one of the three receiver operations.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="MutableBufferSequence.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ProtoAllocator.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,56 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Proto-allocator requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="OperationState.html" title="Operation state concept">
<link rel="next" href="Protocol.html" title="Protocol requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="OperationState.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Protocol.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.ProtoAllocator"></a><a class="link" href="ProtoAllocator.html" title="Proto-allocator requirements">Proto-allocator
requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">A</code> meets the proto-allocator requirements if <code class="computeroutput">A</code>
is <code class="computeroutput">CopyConstructible</code> (C++Std [copyconstructible]), <code class="computeroutput">Destructible</code>
(C++Std [destructible]), and <code class="computeroutput">allocator_traits&lt;A&gt;::rebind_alloc&lt;U&gt;</code>
meets the allocator requirements (C++Std [allocator.requirements]), where
<code class="computeroutput">U</code> is an object type. [<span class="emphasis"><em>Note:</em></span> For example,
<code class="computeroutput">std::allocator&lt;void&gt;</code> meets the proto-allocator requirements
but not the allocator requirements. —<span class="emphasis"><em>end note</em></span>] No constructor,
comparison operator, copy operation, move operation, or swap operation on
these types shall exit via an exception.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="OperationState.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Protocol.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,187 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Protocol requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="ProtoAllocator.html" title="Proto-allocator requirements">
<link rel="next" href="RangeConnectHandler.html" title="Range connect handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ProtoAllocator.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="RangeConnectHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.Protocol"></a><a class="link" href="Protocol.html" title="Protocol requirements">Protocol requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">Protocol</code> requirements if it
satisfies the requirements of <code class="computeroutput">Destructible</code> (C++Std [destructible]),
<code class="computeroutput">CopyConstructible</code> (C++Std [copyconstructible]), and <code class="computeroutput">CopyAssignable</code>
(C++Std [copyassignable]), as well as the additional requirements listed
below.
</p>
<p>
No copy or move operation of the type <code class="computeroutput">X</code> shall exit via an exception.
</p>
<div class="table">
<a name="boost_asio.reference.Protocol.t0"></a><p class="title"><b>Table 23. Protocol requirements</b></p>
<div class="table-contents"><table class="table" summary="Protocol 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-conditions
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput">X::endpoint</code>
</p>
</td>
<td>
<p>
type meeting <a class="link" href="Endpoint.html" title="Endpoint requirements">endpoint</a>
requirements
</p>
</td>
<td>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><p>
In the table below, <code class="computeroutput">a</code> denotes a (possibly const) value of type
<code class="computeroutput">X</code>.
</p>
<div class="table">
<a name="boost_asio.reference.Protocol.t1"></a><p class="title"><b>Table 24. Protocol requirements for extensible implementations</b></p>
<div class="table-contents"><table class="table" summary="Protocol requirements for extensible implementations">
<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-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">a.family()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">int</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>domain</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/socket.html" target="_top"><code class="computeroutput"><span class="identifier">socket</span><span class="special">()</span></code></a>
(or equivalent).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.type()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">int</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>type</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/socket.html" target="_top"><code class="computeroutput"><span class="identifier">socket</span><span class="special">()</span></code></a>
(or equivalent).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.protocol()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">int</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>protocol</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/socket.html" target="_top"><code class="computeroutput"><span class="identifier">socket</span><span class="special">()</span></code></a>
(or equivalent).
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ProtoAllocator.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="RangeConnectHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,125 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Range connect handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="Protocol.html" title="Protocol requirements">
<link rel="next" href="ReadHandler.html" title="Read handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Protocol.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ReadHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.RangeConnectHandler"></a><a class="link" href="RangeConnectHandler.html" title="Range connect handler requirements">Range connect
handler requirements</a>
</h3></div></div></div>
<p>
A range connect handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a range connect handler class should work correctly
in the expression <code class="computeroutput">h(ec, ep)</code>, where <code class="computeroutput">ec</code> is an lvalue
of type <code class="computeroutput">const error_code</code> and <code class="computeroutput">ep</code> is an lvalue of
the type <code class="computeroutput">Protocol::endpoint</code> for the <code class="computeroutput">Protocol</code> type
in the corresponding <code class="computeroutput">connect()</code> or async_connect()` function.
</p>
<h5>
<a name="boost_asio.reference.RangeConnectHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.RangeConnectHandler.examples"></a></span><a class="link" href="RangeConnectHandler.html#boost_asio.reference.RangeConnectHandler.examples">Examples</a>
</h5>
<p>
A free function as a range connect handler:
</p>
<pre class="programlisting">void connect_handler(
const boost::system::error_code&amp; ec,
const boost::asio::ip::tcp::endpoint&amp; endpoint)
{
...
}
</pre>
<p>
A range connect handler function object:
</p>
<pre class="programlisting">struct connect_handler
{
...
template &lt;typename Range&gt;
void operator()(
const boost::system::error_code&amp; ec,
const boost::asio::ip::tcp::endpoint&amp; endpoint)
{
...
}
...
};
</pre>
<p>
A lambda as a range connect handler:
</p>
<pre class="programlisting">boost::asio::async_connect(...,
[](const boost::system::error_code&amp; ec,
const boost::asio::ip::tcp::endpoint&amp; endpoint)
{
...
});
</pre>
<p>
A non-static class member function adapted to a range connect handler using
<code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::connect_handler(
const boost::system::error_code&amp; ec,
const boost::asio::ip::tcp::endpoint&amp; endpoint)
{
...
}
...
boost::asio::async_connect(...,
std::bind(&amp;my_class::connect_handler,
this, std::placeholders::_1,
std::placeholders::_2));
</pre>
<p>
A non-static class member function adapted to a range connect handler using
<code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::connect_handler(
const boost::system::error_code&amp; ec,
const boost::asio::ip::tcp::endpoint&amp; endpoint)
{
...
}
...
boost::asio::async_connect(...,
boost::bind(&amp;my_class::connect_handler,
this, boost::asio::placeholders::error,
boost::asio::placeholders::endpoint));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Protocol.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ReadHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,120 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Read handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="RangeConnectHandler.html" title="Range connect handler requirements">
<link rel="next" href="Receiver.html" title="Receiver concepts">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="RangeConnectHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Receiver.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.ReadHandler"></a><a class="link" href="ReadHandler.html" title="Read handler requirements">Read handler requirements</a>
</h3></div></div></div>
<p>
A read handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a read handler class should work correctly in the
expression <code class="computeroutput">h(ec, s)</code>, where <code class="computeroutput">ec</code> is an lvalue of type
<code class="computeroutput">const error_code</code> and <code class="computeroutput">s</code> is an lvalue of type <code class="computeroutput">const
size_t</code>.
</p>
<h5>
<a name="boost_asio.reference.ReadHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.ReadHandler.examples"></a></span><a class="link" href="ReadHandler.html#boost_asio.reference.ReadHandler.examples">Examples</a>
</h5>
<p>
A free function as a read handler:
</p>
<pre class="programlisting">void read_handler(
const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
}
</pre>
<p>
A read handler function object:
</p>
<pre class="programlisting">struct read_handler
{
...
void operator()(
const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
}
...
};
</pre>
<p>
A lambda as a read handler:
</p>
<pre class="programlisting">socket.async_read(...
[](const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
});
</pre>
<p>
A non-static class member function adapted to a read handler using <code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::read_handler(
const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
}
...
socket.async_read(...,
std::bind(&amp;my_class::read_handler,
this, std::placeholders::_1,
std::placeholders::_2));
</pre>
<p>
A non-static class member function adapted to a read handler using <code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::read_handler(
const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
}
...
socket.async_read(...,
boost::bind(&amp;my_class::read_handler,
this, boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="RangeConnectHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Receiver.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,95 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Receiver concepts</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="ReadHandler.html" title="Read handler requirements">
<link rel="next" href="ResolveHandler.html" title="Resolve handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ReadHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ResolveHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.Receiver"></a><a class="link" href="Receiver.html" title="Receiver concepts">Receiver concepts</a>
</h3></div></div></div>
<p>
A receiver represents the continuation of an asynchronous operation. An asynchronous
operation may complete with a (possibly empty) set of values, an error, or
it may be cancelled. A receiver has three principal operations corresponding
to the three ways an asynchronous operation may complete: <code class="computeroutput">set_value</code>,
<code class="computeroutput">set_error</code>, and <code class="computeroutput">set_done</code>. These are collectively
known as a receivers <span class="emphasis"><em>completion-signal operations</em></span>.
</p>
<pre class="programlisting">template&lt;class T, class E = exception_ptr&gt;
concept receiver =
move_constructible&lt;remove_cvref_t&lt;T&gt;&gt; &amp;&amp;
constructible_from&lt;remove_cvref_t&lt;T&gt;, T&gt; &amp;&amp;
requires(remove_cvref_t&lt;T&gt;&amp;&amp; t, E&amp;&amp; e) {
{ execution::set_done(std::move(t)) } noexcept;
{ execution::set_error(std::move(t), (E&amp;&amp;) e) } noexcept;
};
template&lt;class T, class... An&gt;
concept receiver_of =
receiver&lt;T&gt; &amp;&amp;
requires(remove_cvref_t&lt;T&gt;&amp;&amp; t, An&amp;&amp;... an) {
execution::set_value(std::move(t), (An&amp;&amp;) an...);
};
</pre>
<p>
The receivers completion-signal operations have semantic requirements
that are collectively known as the <span class="emphasis"><em>receiver contract</em></span>,
described below:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
None of a receivers completion-signal operations shall be invoked
before <code class="computeroutput">execution::start</code> has been called on the operation
state object that was returned by <code class="computeroutput">execution::connect</code> to
connect that receiver to a sender.
</li>
<li class="listitem">
Once <code class="computeroutput">execution::start</code> has been called on the operation state
object, exactly one of the receivers completion-signal operations
shall complete non-exceptionally before the receiver is destroyed.
</li>
<li class="listitem">
If <code class="computeroutput">execution::set_value</code> exits with an exception, it is still
valid to call <code class="computeroutput">execution::set_error</code> or <code class="computeroutput">execution::set_done</code>
on the receiver.
</li>
</ul></div>
<p>
Once one of a receivers completion-signal operations has completed non-exceptionally,
the receiver contract has been satisfied.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ReadHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ResolveHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,123 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Resolve handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="Receiver.html" title="Receiver concepts">
<link rel="next" href="Scheduler.html" title="Scheduler concept">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Receiver.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Scheduler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.ResolveHandler"></a><a class="link" href="ResolveHandler.html" title="Resolve handler requirements">Resolve handler
requirements</a>
</h3></div></div></div>
<p>
A resolve handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a resolve handler class should work correctly in
the expression <code class="computeroutput">h(ec, r)</code>, where <code class="computeroutput">ec</code> is an lvalue
of type <code class="computeroutput">const error_code</code> and <code class="computeroutput">r</code> is an lvalue of
type <code class="computeroutput">const ip::basic_resolver_results&lt;InternetProtocol&gt;</code>.
<code class="computeroutput">InternetProtocol</code> is the template parameter of the <a class="link" href="ip__basic_resolver.html" title="ip::basic_resolver"><code class="computeroutput">ip::basic_resolver&lt;&gt;</code></a>
which is used to initiate the asynchronous operation.
</p>
<h5>
<a name="boost_asio.reference.ResolveHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.ResolveHandler.examples"></a></span><a class="link" href="ResolveHandler.html#boost_asio.reference.ResolveHandler.examples">Examples</a>
</h5>
<p>
A free function as a resolve handler:
</p>
<pre class="programlisting">void resolve_handler(
const boost::system::error_code&amp; ec,
boost::asio::ip::tcp::resolver::results_type results)
{
...
}
</pre>
<p>
A resolve handler function object:
</p>
<pre class="programlisting">struct resolve_handler
{
...
void operator()(
const boost::system::error_code&amp; ec,
boost::asio::ip::tcp::resolver::results_type results)
{
...
}
...
};
</pre>
<p>
A lambda as a resolve handler:
</p>
<pre class="programlisting">resolver.async_resolve(...,
[](const boost::system::error_code&amp; ec,
boost::asio::ip::tcp::resolver::results_type results)
{
...
});
</pre>
<p>
A non-static class member function adapted to a resolve handler using <code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::resolve_handler(
const boost::system::error_code&amp; ec,
boost::asio::ip::tcp::resolver::results_type results)
{
...
}
...
resolver.async_resolve(...,
std::bind(&amp;my_class::resolve_handler,
this, std::placeholders::_1,
std::placeholders::_2));
</pre>
<p>
A non-static class member function adapted to a resolve handler using <code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::resolve_handler(
const boost::system::error_code&amp; ec,
boost::asio::ip::tcp::resolver::results_type results)
{
...
}
...
resolver.async_resolve(...,
boost::bind(&amp;my_class::resolve_handler,
this, boost::asio::placeholders::error,
boost::asio::placeholders::results));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Receiver.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Scheduler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,186 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Scheduler concept</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="ResolveHandler.html" title="Resolve handler requirements">
<link rel="next" href="Sender.html" title="Sender concepts">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ResolveHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Sender.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.Scheduler"></a><a class="link" href="Scheduler.html" title="Scheduler concept">Scheduler concept</a>
</h3></div></div></div>
<pre class="programlisting">template&lt;class S&gt;
concept scheduler =
copy_constructible&lt;remove_cvref_t&lt;S&gt;&gt; &amp;&amp;
equality_comparable&lt;remove_cvref_t&lt;S&gt;&gt; &amp;&amp;
requires(E&amp;&amp; e) {
execution::schedule((E&amp;&amp;)e);
};
</pre>
<p>
None of a scheduler's copy constructor, destructor, equality comparison,
or <code class="computeroutput">swap</code> operation shall exit via an exception.
</p>
<p>
None of these operations, nor a scheduler type's <code class="computeroutput">schedule</code> function,
or associated query functions shall introduce data races as a result of concurrent
invocations of those functions from different threads.
</p>
<p>
For any two (possibly const) values <code class="computeroutput">x1</code> and <code class="computeroutput">x2</code> of
some scheduler type <code class="computeroutput">X</code>, <code class="computeroutput">x1 == x2</code> shall return <code class="computeroutput">true</code>
only if <code class="computeroutput">boost::asio::query(x1, p) == boost::asio::query(x2, p)</code>
for every property <code class="computeroutput">p</code> where both <code class="computeroutput">boost::asio::query(x1,
p)</code> and <code class="computeroutput">boost::asio::query(x2, p)</code> are well-formed and
result in a non-void type that is <code class="computeroutput">EqualityComparable</code> (C++Std
[equalitycomparable]). [<span class="emphasis"><em>Note:</em></span> The above requirements
imply that <code class="computeroutput">x1 == x2</code> returns <code class="computeroutput">true</code> if <code class="computeroutput">x1</code>
and <code class="computeroutput">x2</code> can be interchanged with identical effects. A scheduler
may conceptually contain additional properties which are not exposed by a
named property type that can be observed via <code class="computeroutput">boost::asio::query</code>;
in this case, it is up to the concrete scheduler implementation to decide
if these properties affect equality. Returning <code class="computeroutput">false</code> does not
necessarily imply that the effects are not identical. —<span class="emphasis"><em>end note</em></span>]
</p>
<p>
A scheduler type's destructor shall not block pending completion of any receivers
submitted to the sender objects returned from <code class="computeroutput">schedule</code>. [<span class="emphasis"><em>Note:</em></span>
The ability to wait for completion of submitted function objects may be provided
by the execution context that produced the scheduler. —<span class="emphasis"><em>end note</em></span>]
</p>
<p>
In addition to the above requirements, type <code class="computeroutput">S</code> models <code class="computeroutput">scheduler</code>
only if it satisfies the requirements in the Table below.
</p>
<p>
In the Table below,
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="computeroutput">s</code> denotes a (possibly const) scheduler object of type <code class="computeroutput">S</code>,
</li>
<li class="listitem">
<code class="computeroutput">N</code> denotes a type that models <code class="computeroutput">sender</code>, and
</li>
<li class="listitem">
<code class="computeroutput">n</code> denotes a sender object of type <code class="computeroutput">N</code>
</li>
</ul></div>
<div class="table">
<a name="boost_asio.reference.Scheduler.t0"></a><p class="title"><b>Table 25. Scheduler requirements</b></p>
<div class="table-contents"><table class="table" summary="Scheduler requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
return type
</p>
</th>
<th>
<p>
operation semantics
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput">execution::schedule(s)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">N</code>
</p>
</td>
<td>
<p>
Evaluates <code class="computeroutput">execution::schedule(s)</code> on the calling thread
to create <code class="computeroutput">N</code>.
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><p>
<code class="computeroutput">execution::start(o)</code>, where <code class="computeroutput">o</code> is the result of a
call to <code class="computeroutput">execution::connect(N, r)</code> for some receiver object <code class="computeroutput">r</code>,
is required to eagerly submit <code class="computeroutput">r</code> for execution on an execution
agent that <code class="computeroutput">s</code> creates for it. Let <code class="computeroutput">rc</code> be <code class="computeroutput">r</code>
or an object created by copy or move construction from <code class="computeroutput">r</code>. The
semantic constraints on the <code class="computeroutput">sender</code> <code class="computeroutput">N</code> returned from
a scheduler <code class="computeroutput">s</code>'s <code class="computeroutput">schedule</code> function are as follows:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
If <code class="computeroutput">rc</code>'s <code class="computeroutput">set_error</code> function is called in response
to a submission error, scheduling error, or other internal error, let
<code class="computeroutput">E</code> be an expression that refers to that error if <code class="computeroutput">set_error(rc,
E)</code> is well-formed; otherwise, let <code class="computeroutput">E</code> be an <code class="computeroutput">exception_ptr</code>
that refers to that error. [Note: <code class="computeroutput">E</code> could be the result
of calling <code class="computeroutput">current_exception</code> or <code class="computeroutput">make_exception_ptr</code>.]
The scheduler calls <code class="computeroutput">set_error(rc, E)</code> on an unspecified weakly-parallel
execution agent ([Note: An invocation of <code class="computeroutput">set_error</code> on a
receiver is required to be <code class="computeroutput">noexcept</code>]), and
</li>
<li class="listitem">
If <code class="computeroutput">rc</code>'s <code class="computeroutput">set_error</code> function is called in response
to an exception that propagates out of the invocation of <code class="computeroutput">set_value</code>
on <code class="computeroutput">rc</code>, let <code class="computeroutput">E</code> be <code class="computeroutput">make_exception_ptr(receiver_invocation_error{})</code>
invoked from within a catch clause that has caught the exception. The
executor calls <code class="computeroutput">set_error(rc, E)</code> on an unspecified weakly-parallel
execution agent, and
</li>
<li class="listitem">
A call to <code class="computeroutput">set_done(rc)</code> is made on an unspecified weakly-parallel
execution agent ([Note: An invocation of a receiver's <code class="computeroutput">set_done</code>
function is required to be <code class="computeroutput">noexcept</code>]).
</li>
</ul></div>
<p>
[<span class="emphasis"><em>Note:</em></span> The senders returned from a scheduler's <code class="computeroutput">schedule</code>
function have wide discretion when deciding which of the three receiver functions
to call upon submission. —<span class="emphasis"><em>end note</em></span>]
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ResolveHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Sender.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,105 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Sender concepts</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="Scheduler.html" title="Scheduler concept">
<link rel="next" href="Service.html" title="Service requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Scheduler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Service.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.Sender"></a><a class="link" href="Sender.html" title="Sender concepts">Sender concepts</a>
</h3></div></div></div>
<h5>
<a name="boost_asio.reference.Sender.h0"></a>
<span class="phrase"><a name="boost_asio.reference.Sender.sender_and_sender_to"></a></span><a class="link" href="Sender.html#boost_asio.reference.Sender.sender_and_sender_to">sender
and sender_to</a>
</h5>
<pre class="programlisting">template&lt;class S&gt;
concept sender =
move_constructible&lt;remove_cvref_t&lt;S&gt;&gt; &amp;&amp;
!requires {
typename sender_traits&lt;remove_cvref_t&lt;S&gt;&gt;::__unspecialized; // exposition only
};
template&lt;class S, class R&gt;
concept sender_to =
sender&lt;S&gt; &amp;&amp;
receiver&lt;R&gt; &amp;&amp;
requires (S&amp;&amp; s, R&amp;&amp; r) {
execution::connect((S&amp;&amp;) s, (R&amp;&amp;) r);
};
</pre>
<p>
None of these operations shall introduce data races as a result of concurrent
invocations of those functions from different threads.
</p>
<p>
A sender type's destructor shall not block pending completion of the submitted
function objects.
</p>
<p>
[<span class="emphasis"><em>Note:</em></span> The ability to wait for completion of submitted
function objects may be provided by the associated execution context. —<span class="emphasis"><em>end
note</em></span>]
</p>
<h5>
<a name="boost_asio.reference.Sender.h1"></a>
<span class="phrase"><a name="boost_asio.reference.Sender.typed_sender"></a></span><a class="link" href="Sender.html#boost_asio.reference.Sender.typed_sender">typed_sender</a>
</h5>
<p>
A sender is <span class="bold"><strong>typed</strong></span> if it declares what types
it sends through a receiver's channels. The <code class="computeroutput">typed_sender</code> concept
is defined as:
</p>
<pre class="programlisting">template&lt;template&lt;template&lt;class...&gt; class Tuple, template&lt;class...&gt; class Variant&gt; class&gt;
struct has-value-types; // exposition only
template&lt;template&lt;class...&gt; class Variant&gt;
struct has-error-types; // exposition only
template&lt;class S&gt;
concept has-sender-types = // exposition only
requires {
typename has-value-types&lt;S::template value_types&gt;;
typename has-error-types&lt;S::template error_types&gt;;
typename bool_constant&lt;S::sends_done&gt;;
};
template&lt;class S&gt;
concept typed_sender =
sender&lt;S&gt; &amp;&amp;
has-sender-types&lt;sender_traits&lt;remove_cvref_t&lt;S&gt;&gt;&gt;;
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Scheduler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Service.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,81 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Service requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="Sender.html" title="Sender concepts">
<link rel="next" href="SettableSerialPortOption.html" title="Settable serial port option requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Sender.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SettableSerialPortOption.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.Service"></a><a class="link" href="Service.html" title="Service requirements">Service requirements</a>
</h3></div></div></div>
<p>
A class is a <span class="emphasis"><em>service</em></span> if it is publicly and unambiguously
derived from <code class="computeroutput">execution_context::service</code>, or if it is publicly
and unambiguously derived from another service. For a service <code class="computeroutput">S</code>,
<code class="computeroutput">S::key_type</code> shall be valid and denote a type (C++Std [temp.deduct]),
<code class="computeroutput">is_base_of_v&lt;typename S::key_type, S&gt;</code> shall be <code class="computeroutput">true</code>,
and <code class="computeroutput">S</code> shall satisfy the <code class="computeroutput">Destructible</code> requirements
(C++Std [destructible]).
</p>
<p>
The first parameter of all service constructors shall be an lvalue reference
to <code class="computeroutput">execution_context</code>. This parameter denotes the <code class="computeroutput">execution_context</code>
object that represents a set of services, of which the service object will
be a member. [<span class="emphasis"><em>Note:</em></span> These constructors may be called
by the <code class="computeroutput">make_service</code> function. —<span class="emphasis"><em>end note</em></span>]
</p>
<p>
A service shall provide an explicit constructor with a single parameter of
lvalue reference to <code class="computeroutput">execution_context</code>. [<span class="emphasis"><em>Note:</em></span>
This constructor may be called by the <code class="computeroutput">use_service</code> function.
<span class="emphasis"><em>end note</em></span>]
</p>
<pre class="programlisting">class my_service : public execution_context::service
{
public:
typedef my_service key_type;
explicit my_service(execution_context&amp; ctx);
my_service(execution_context&amp; ctx, int some_value);
private:
virtual void shutdown() noexcept override;
...
};
</pre>
<p>
A service's <code class="computeroutput">shutdown</code> member function shall destroy all copies
of user-defined function objects that are held by the service.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Sender.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SettableSerialPortOption.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,101 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Settable serial port option requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="Service.html" title="Service requirements">
<link rel="next" href="SettableSocketOption.html" title="Settable socket option requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Service.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SettableSocketOption.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.SettableSerialPortOption"></a><a class="link" href="SettableSerialPortOption.html" title="Settable serial port option requirements">Settable
serial port option requirements</a>
</h3></div></div></div>
<p>
In the table below, <code class="computeroutput">X</code> denotes a serial port option class, <code class="computeroutput">a</code>
denotes a value of <code class="computeroutput">X</code>, <code class="computeroutput">ec</code> denotes a value of type
<code class="computeroutput">error_code</code>, and <code class="computeroutput">s</code> denotes a value of implementation-defined
type <span class="emphasis"><em><code class="literal">storage</code></em></span> (where <span class="emphasis"><em><code class="literal">storage</code></em></span>
is the type <code class="computeroutput">DCB</code> on Windows and <code class="computeroutput">termios</code> on <span class="emphasis"><em>POSIX</em></span>
platforms), and <code class="computeroutput">u</code> denotes an identifier.
</p>
<div class="table">
<a name="boost_asio.reference.SettableSerialPortOption.t0"></a><p class="title"><b>Table 26. SettableSerialPortOption requirements</b></p>
<div class="table-contents"><table class="table" summary="SettableSerialPortOption requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-conditions
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput">const X&amp; u = a;</code><br> <code class="computeroutput">u.store(s, ec);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">error_code</code>
</p>
</td>
<td>
<p>
Saves the value of the serial port option to the storage.<br>
<br> If successful, sets <code class="computeroutput">ec</code> such that <code class="computeroutput">!ec</code>
is true. If an error occurred, sets <code class="computeroutput">ec</code> such that
<code class="computeroutput">!!ec</code> is true. Returns <code class="computeroutput">ec</code>.
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="Service.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SettableSocketOption.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,162 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Settable socket option requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="SettableSerialPortOption.html" title="Settable serial port option requirements">
<link rel="next" href="ShutdownHandler.html" title="SSL shutdown handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SettableSerialPortOption.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ShutdownHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.SettableSocketOption"></a><a class="link" href="SettableSocketOption.html" title="Settable socket option requirements">Settable socket
option requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">SettableSocketOption</code> requirements
if it satisfies the requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">a</code> denotes a (possibly const) value of type
<code class="computeroutput">X</code>, <code class="computeroutput">p</code> denotes a (possibly const) value that meets
the <a class="link" href="Protocol.html" title="Protocol requirements"><code class="computeroutput">Protocol</code></a>
requirements, and <code class="computeroutput">u</code> denotes an identifier.
</p>
<div class="table">
<a name="boost_asio.reference.SettableSocketOption.t0"></a><p class="title"><b>Table 27. SettableSocketOption requirements for extensible implementations</b></p>
<div class="table-contents"><table class="table" summary="SettableSocketOption requirements for extensible implementations">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">a.level(p)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">int</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>level</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html" target="_top"><code class="computeroutput"><span class="identifier">setsockopt</span><span class="special">()</span></code></a>
(or equivalent).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.name(p)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">int</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>option_name</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html" target="_top"><code class="computeroutput"><span class="identifier">setsockopt</span><span class="special">()</span></code></a>
(or equivalent).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.data(p)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">const void*</code>
</p>
</td>
<td>
<p>
Returns a pointer suitable for passing as the <span class="emphasis"><em>option_value</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html" target="_top"><code class="computeroutput"><span class="identifier">setsockopt</span><span class="special">()</span></code></a>
(or equivalent).
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.size(p)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns a value suitable for passing as the <span class="emphasis"><em>option_len</em></span>
argument to <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html" target="_top"><code class="computeroutput"><span class="identifier">setsockopt</span><span class="special">()</span></code></a>
(or equivalent), after appropriate integer conversion has been
performed.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SettableSerialPortOption.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="ShutdownHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,113 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SSL shutdown handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="SettableSocketOption.html" title="Settable socket option requirements">
<link rel="next" href="SignalHandler.html" title="Signal handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SettableSocketOption.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SignalHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.ShutdownHandler"></a><a class="link" href="ShutdownHandler.html" title="SSL shutdown handler requirements">SSL shutdown handler
requirements</a>
</h3></div></div></div>
<p>
A shutdown handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a shutdown handler class should work correctly
in the expression <code class="computeroutput">h(ec)</code>, where <code class="computeroutput">ec</code> is an lvalue
of type <code class="computeroutput">const error_code</code>.
</p>
<h5>
<a name="boost_asio.reference.ShutdownHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.ShutdownHandler.examples"></a></span><a class="link" href="ShutdownHandler.html#boost_asio.reference.ShutdownHandler.examples">Examples</a>
</h5>
<p>
A free function as a shutdown handler:
</p>
<pre class="programlisting">void shutdown_handler(
const boost::system::error_code&amp; ec)
{
...
}
</pre>
<p>
A shutdown handler function object:
</p>
<pre class="programlisting">struct shutdown_handler
{
...
void operator()(
const boost::system::error_code&amp; ec)
{
...
}
...
};
</pre>
<p>
A lambda as a shutdown handler:
</p>
<pre class="programlisting">ssl_stream.async_shutdown(...,
[](const boost::system::error_code&amp; ec)
{
...
});
</pre>
<p>
A non-static class member function adapted to a shutdown handler using <code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::shutdown_handler(
const boost::system::error_code&amp; ec)
{
...
}
...
ssl_stream.async_shutdown(
std::bind(&amp;my_class::shutdown_handler,
this, std::placeholders::_1));
</pre>
<p>
A non-static class member function adapted to a shutdown handler using <code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::shutdown_handler(
const boost::system::error_code&amp; ec)
{
...
}
...
ssl_stream.async_shutdown(
boost::bind(&amp;my_class::shutdown_handler,
this, boost::asio::placeholders::error));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SettableSocketOption.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SignalHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,120 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Signal handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="ShutdownHandler.html" title="SSL shutdown handler requirements">
<link rel="next" href="SyncRandomAccessReadDevice.html" title="Buffer-oriented synchronous random-access read device requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ShutdownHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SyncRandomAccessReadDevice.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.SignalHandler"></a><a class="link" href="SignalHandler.html" title="Signal handler requirements">Signal handler requirements</a>
</h3></div></div></div>
<p>
A signal handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a signal handler class should work correctly in
the expression <code class="computeroutput">h(ec, n)</code>, where <code class="computeroutput">ec</code> is an lvalue
of type <code class="computeroutput">const error_code</code> and <code class="computeroutput">n</code> is an lvalue of
type <code class="computeroutput">const int</code>.
</p>
<h5>
<a name="boost_asio.reference.SignalHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.SignalHandler.examples"></a></span><a class="link" href="SignalHandler.html#boost_asio.reference.SignalHandler.examples">Examples</a>
</h5>
<p>
A free function as a signal handler:
</p>
<pre class="programlisting">void signal_handler(
const boost::system::error_code&amp; ec,
int signal_number)
{
...
}
</pre>
<p>
A signal handler function object:
</p>
<pre class="programlisting">struct signal_handler
{
...
void operator()(
const boost::system::error_code&amp; ec,
int signal_number)
{
...
}
...
};
</pre>
<p>
A lambda as a signal handler:
</p>
<pre class="programlisting">my_signal_set.async_wait(
[](const boost::system::error_code&amp; ec,
int signal_number)
{
...
});
</pre>
<p>
A non-static class member function adapted to a signal handler using <code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::signal_handler(
const boost::system::error_code&amp; ec,
int signal_number)
{
...
}
...
my_signal_set.async_wait(
std::bind(&amp;my_class::signal_handler,
this, std::placeholders::_1,
std::placeholders::_2));
</pre>
<p>
A non-static class member function adapted to a signal handler using <code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::signal_handler(
const boost::system::error_code&amp; ec,
int signal_number)
{
...
}
...
my_signal_set.async_wait(
boost::bind(&amp;my_class::signal_handler,
this, boost::asio::placeholders::error,
boost::asio::placeholders::signal_number));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="ShutdownHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SyncRandomAccessReadDevice.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,133 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Buffer-oriented synchronous random-access read device requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="SignalHandler.html" title="Signal handler requirements">
<link rel="next" href="SyncRandomAccessWriteDevice.html" title="Buffer-oriented synchronous random-access write device requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SignalHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SyncRandomAccessWriteDevice.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.SyncRandomAccessReadDevice"></a><a class="link" href="SyncRandomAccessReadDevice.html" title="Buffer-oriented synchronous random-access read device requirements">Buffer-oriented
synchronous random-access read device requirements</a>
</h3></div></div></div>
<p>
In the table below, <code class="computeroutput">a</code> denotes a synchronous random-access read
device object, <code class="computeroutput">o</code> denotes an offset of type <code class="computeroutput">boost::uint64_t</code>,
<code class="computeroutput">mb</code> denotes an object satisfying <a class="link" href="MutableBufferSequence.html" title="Mutable buffer sequence requirements">mutable
buffer sequence</a> requirements, and <code class="computeroutput">ec</code> denotes an object
of type <code class="computeroutput">error_code</code>.
</p>
<div class="table">
<a name="boost_asio.reference.SyncRandomAccessReadDevice.t0"></a><p class="title"><b>Table 28. Buffer-oriented synchronous random-access read device requirements</b></p>
<div class="table-contents"><table class="table" summary="Buffer-oriented synchronous random-access read device requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
operation
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
semantics, pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">a.read_some_at(o, mb);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Equivalent to:
</p>
<pre class="programlisting">error_code ec;
size_t s = a.read_some_at(o, mb, ec);
if (ec) throw system_error(ec);
return s;
</pre>
<p>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.read_some_at(o, mb, ec);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Reads one or more bytes of data from the device <code class="computeroutput">a</code>
at offset <code class="computeroutput">o</code>.<br> <br> The mutable buffer sequence
<code class="computeroutput">mb</code> specifies memory where the data should be placed.
The <code class="computeroutput">read_some_at</code> operation shall always fill a buffer
in the sequence completely before proceeding to the next.<br>
<br> If successful, returns the number of bytes read and sets
<code class="computeroutput">ec</code> such that <code class="computeroutput">!ec</code> is true. If an error
occurred, returns <code class="computeroutput">0</code> and sets <code class="computeroutput">ec</code> such
that <code class="computeroutput">!!ec</code> is true.<br> <br> If the total size
of all buffers in the sequence <code class="computeroutput">mb</code> is <code class="computeroutput">0</code>,
the function shall return <code class="computeroutput">0</code> immediately.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SignalHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SyncRandomAccessWriteDevice.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,133 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Buffer-oriented synchronous random-access write device requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="SyncRandomAccessReadDevice.html" title="Buffer-oriented synchronous random-access read device requirements">
<link rel="next" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SyncRandomAccessReadDevice.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SyncReadStream.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.SyncRandomAccessWriteDevice"></a><a class="link" href="SyncRandomAccessWriteDevice.html" title="Buffer-oriented synchronous random-access write device requirements">Buffer-oriented
synchronous random-access write device requirements</a>
</h3></div></div></div>
<p>
In the table below, <code class="computeroutput">a</code> denotes a synchronous random-access write
device object, <code class="computeroutput">o</code> denotes an offset of type <code class="computeroutput">boost::uint64_t</code>,
<code class="computeroutput">cb</code> denotes an object satisfying <a class="link" href="ConstBufferSequence.html" title="Constant buffer sequence requirements">constant
buffer sequence</a> requirements, and <code class="computeroutput">ec</code> denotes an object
of type <code class="computeroutput">error_code</code>.
</p>
<div class="table">
<a name="boost_asio.reference.SyncRandomAccessWriteDevice.t0"></a><p class="title"><b>Table 29. Buffer-oriented synchronous random-access write device requirements</b></p>
<div class="table-contents"><table class="table" summary="Buffer-oriented synchronous random-access write device requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
operation
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
semantics, pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">a.write_some_at(o, cb);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Equivalent to:
</p>
<pre class="programlisting">error_code ec;
size_t s = a.write_some(o, cb, ec);
if (ec) throw system_error(ec);
return s;
</pre>
<p>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">a.write_some_at(o, cb, ec);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Writes one or more bytes of data to the device <code class="computeroutput">a</code> at
offset <code class="computeroutput">o</code>.<br> <br> The constant buffer sequence
<code class="computeroutput">cb</code> specifies memory where the data to be written is
located. The <code class="computeroutput">write_some_at</code> operation shall always
write a buffer in the sequence completely before proceeding to
the next.<br> <br> If successful, returns the number of bytes
written and sets <code class="computeroutput">ec</code> such that <code class="computeroutput">!ec</code> is
true. If an error occurred, returns <code class="computeroutput">0</code> and sets <code class="computeroutput">ec</code>
such that <code class="computeroutput">!!ec</code> is true.<br> <br> If the total
size of all buffers in the sequence <code class="computeroutput">cb</code> is <code class="computeroutput">0</code>,
the function shall return <code class="computeroutput">0</code> immediately.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SyncRandomAccessReadDevice.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SyncReadStream.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,110 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Buffer-oriented synchronous read stream requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="SyncRandomAccessWriteDevice.html" title="Buffer-oriented synchronous random-access write device requirements">
<link rel="next" href="SyncWriteStream.html" title="Buffer-oriented synchronous write stream requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SyncRandomAccessWriteDevice.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SyncWriteStream.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.SyncReadStream"></a><a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">Buffer-oriented
synchronous read stream requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">SyncReadStream</code> requirements
if it satisfies the requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">a</code> denotes a value of type <code class="computeroutput">X</code>,
<code class="computeroutput">mb</code> denotes a (possibly const) value satisfying the <a class="link" href="MutableBufferSequence.html" title="Mutable buffer sequence requirements"><code class="computeroutput">MutableBufferSequence</code></a>
requirements, and <code class="computeroutput">ec</code> denotes an object of type <code class="computeroutput">error_code</code>.
</p>
<div class="table">
<a name="boost_asio.reference.SyncReadStream.t0"></a><p class="title"><b>Table 30. SyncReadStream requirements</b></p>
<div class="table-contents"><table class="table" summary="SyncReadStream requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
operation
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
semantics, pre/post-conditions
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput">a.read_some(mb)</code><br> <code class="computeroutput">a.read_some(mb,ec)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Meets the requirements for a <a class="link" href="read_write_operations.html" title="Requirements on read and write operations">read
operation</a>.<br> <br> If <code class="computeroutput">buffer_size(mb) &gt; 0</code>,
reads one or more bytes of data from the stream <code class="computeroutput">a</code>
into the buffer sequence <code class="computeroutput">mb</code>. If successful, sets
<code class="computeroutput">ec</code> such that <code class="computeroutput">!ec</code> is <code class="computeroutput">true</code>,
and returns the number of bytes read. If an error occurred, sets
<code class="computeroutput">ec</code> such that <code class="computeroutput">!!ec</code> is <code class="computeroutput">true</code>,
and returns 0. If all data has been read from the stream, and the
stream performed an orderly shutdown, sets <code class="computeroutput">ec</code> to
<code class="computeroutput">stream_errc::eof</code> and returns 0.<br> <br> If <code class="computeroutput">buffer_size(mb)
== 0</code>, the operation shall not block. Sets <code class="computeroutput">ec</code>
such that <code class="computeroutput">!ec</code> is <code class="computeroutput">true</code>, and returns 0.
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SyncRandomAccessWriteDevice.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="SyncWriteStream.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,108 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Buffer-oriented synchronous write stream requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">
<link rel="next" href="TimeTraits.html" title="Time traits requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SyncReadStream.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="TimeTraits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.SyncWriteStream"></a><a class="link" href="SyncWriteStream.html" title="Buffer-oriented synchronous write stream requirements">Buffer-oriented
synchronous write stream requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput">X</code> meets the <code class="computeroutput">SyncWriteStream</code> requirements
if it satisfies the requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">a</code> denotes a value of type <code class="computeroutput">X</code>,
<code class="computeroutput">cb</code> denotes a (possibly const) value satisfying the <a class="link" href="ConstBufferSequence.html" title="Constant buffer sequence requirements"><code class="computeroutput">ConstBufferSequence</code></a>
requirements, and <code class="computeroutput">ec</code> denotes an object of type <code class="computeroutput">error_code</code>.
</p>
<div class="table">
<a name="boost_asio.reference.SyncWriteStream.t0"></a><p class="title"><b>Table 31. SyncWriteStream requirements</b></p>
<div class="table-contents"><table class="table" summary="SyncWriteStream requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
operation
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
semantics, pre/post-conditions
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput">a.write_some(cb)</code><br> <code class="computeroutput">a.write_some(cb,ec)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Meets the requirements for a <a class="link" href="read_write_operations.html" title="Requirements on read and write operations">write
operation</a>.<br> <br> If <code class="computeroutput">buffer_size(cb) &gt; 0</code>,
writes one or more bytes of data to the stream <code class="computeroutput">a</code> from
the buffer sequence <code class="computeroutput">cb</code>. If successful, sets <code class="computeroutput">ec</code>
such that <code class="computeroutput">!ec</code> is <code class="computeroutput">true</code>, and returns the
number of bytes written. If an error occurred, sets <code class="computeroutput">ec</code>
such that <code class="computeroutput">!!ec</code> is <code class="computeroutput">true</code>, and returns 0.<br>
<br> If <code class="computeroutput">buffer_size(cb) == 0</code>, the operation shall
not block. Sets <code class="computeroutput">ec</code> such that <code class="computeroutput">!ec</code> is
<code class="computeroutput">true</code>, and returns 0.
</p>
</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SyncReadStream.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="TimeTraits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,205 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Time traits requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="SyncWriteStream.html" title="Buffer-oriented synchronous write stream requirements">
<link rel="next" href="WaitHandler.html" title="Wait handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SyncWriteStream.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="WaitHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.TimeTraits"></a><a class="link" href="TimeTraits.html" title="Time traits requirements">Time traits requirements</a>
</h3></div></div></div>
<p>
In the table below, <code class="computeroutput">X</code> denotes a time traits class for time type
<code class="computeroutput">Time</code>, <code class="computeroutput">t</code>, <code class="computeroutput">t1</code>, and <code class="computeroutput">t2</code> denote
values of type <code class="computeroutput">Time</code>, and <code class="computeroutput">d</code> denotes a value of type
<code class="computeroutput">X::duration_type</code>.
</p>
<div class="table">
<a name="boost_asio.reference.TimeTraits.t0"></a><p class="title"><b>Table 32. TimeTraits requirements</b></p>
<div class="table-contents"><table class="table" summary="TimeTraits 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">X::time_type</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">Time</code>
</p>
</td>
<td>
<p>
Represents an absolute time. Must support default construction,
and meet the requirements for <code class="computeroutput">CopyConstructible</code> and
<code class="computeroutput">Assignable</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::duration_type</code>
</p>
</td>
<td>
</td>
<td>
<p>
Represents the difference between two absolute times. Must support
default construction, and meet the requirements for <code class="computeroutput">CopyConstructible</code>
and <code class="computeroutput">Assignable</code>. A duration can be positive, negative,
or zero.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::now();</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">time_type</code>
</p>
</td>
<td>
<p>
Returns the current time.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::add(t, d);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">time_type</code>
</p>
</td>
<td>
<p>
Returns a new absolute time resulting from adding the duration
<code class="computeroutput">d</code> to the absolute time <code class="computeroutput">t</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::subtract(t1, t2);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">duration_type</code>
</p>
</td>
<td>
<p>
Returns the duration resulting from subtracting <code class="computeroutput">t2</code>
from <code class="computeroutput">t1</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::less_than(t1, t2);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">bool</code>
</p>
</td>
<td>
<p>
Returns whether <code class="computeroutput">t1</code> is to be treated as less than
<code class="computeroutput">t2</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::to_posix_duration(d);</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">date_time::time_duration_type</code>
</p>
</td>
<td>
<p>
Returns the <code class="computeroutput">date_time::time_duration_type</code> value that
most closely represents the duration <code class="computeroutput">d</code>.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="SyncWriteStream.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="WaitHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,112 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Wait handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="TimeTraits.html" title="Time traits requirements">
<link rel="next" href="WaitTraits.html" title="Wait traits requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="TimeTraits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="WaitTraits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.WaitHandler"></a><a class="link" href="WaitHandler.html" title="Wait handler requirements">Wait handler requirements</a>
</h3></div></div></div>
<p>
A wait handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a wait handler class should work correctly in the
expression <code class="computeroutput">h(ec)</code>, where <code class="computeroutput">ec</code> is an lvalue of type
<code class="computeroutput">const error_code</code>.
</p>
<h5>
<a name="boost_asio.reference.WaitHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.WaitHandler.examples"></a></span><a class="link" href="WaitHandler.html#boost_asio.reference.WaitHandler.examples">Examples</a>
</h5>
<p>
A free function as a wait handler:
</p>
<pre class="programlisting">void wait_handler(
const boost::system::error_code&amp; ec)
{
...
}
</pre>
<p>
A wait handler function object:
</p>
<pre class="programlisting">struct wait_handler
{
...
void operator()(
const boost::system::error_code&amp; ec)
{
...
}
...
};
</pre>
<p>
A lambda as a wait handler:
</p>
<pre class="programlisting">socket.async_wait(...,
[](const boost::system::error_code&amp; ec)
{
...
});
</pre>
<p>
A non-static class member function adapted to a wait handler using <code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::wait_handler(
const boost::system::error_code&amp; ec)
{
...
}
...
socket.async_wait(...,
std::bind(&amp;my_class::wait_handler,
this, std::placeholders::_1));
</pre>
<p>
A non-static class member function adapted to a wait handler using <code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::wait_handler(
const boost::system::error_code&amp; ec)
{
...
}
...
socket.async_wait(...,
boost::bind(&amp;my_class::wait_handler,
this, boost::asio::placeholders::error));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="TimeTraits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="WaitTraits.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,137 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Wait traits requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="WaitHandler.html" title="Wait handler requirements">
<link rel="next" href="WriteHandler.html" title="Write handler requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="WaitHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="WriteHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_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">basic_waitable_timer</code> template uses wait traits to allow
programs to customize <code class="computeroutput">wait</code> and <code class="computeroutput">async_wait</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">e</code> to be <code class="computeroutput">Clock::max()</code>
(meaning never reached) or <code class="computeroutput">Clock::min()</code> (meaning always in the
past). As a result, computing the duration until timer expiry as <code class="computeroutput">e
- Clock::now()</code> may cause overflow. —<span class="emphasis"><em>end note</em></span>]
</p>
<p>
For a type <code class="computeroutput">Clock</code> meeting the <code class="computeroutput">Clock</code> requirements
(C++Std [time.clock.req]), a type <code class="computeroutput">X</code> meets the <code class="computeroutput">WaitTraits</code>
requirements if it satisfies the requirements listed below.
</p>
<p>
In the table below, <code class="computeroutput">t</code> denotes a (possibly const) value of type
<code class="computeroutput">Clock::time_point</code>; and <code class="computeroutput">d</code> denotes a (possibly const)
value of type <code class="computeroutput">Clock::duration</code>.
</p>
<div class="table">
<a name="boost_asio.reference.WaitTraits.t0"></a><p class="title"><b>Table 33. 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">X::to_wait_duration(d)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">Clock::duration</code>
</p>
</td>
<td>
<p>
Returns a <code class="computeroutput">Clock::duration</code> value to be used in a <code class="computeroutput">wait</code>
or <code class="computeroutput">async_wait</code> operation. [<span class="emphasis"><em>Note:</em></span>
The return value is typically representative of the duration <code class="computeroutput">d</code>.
<span class="emphasis"><em>end note</em></span>]
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::to_wait_duration(t)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">Clock::duration</code>
</p>
</td>
<td>
<p>
Returns a <code class="computeroutput">Clock::duration</code> value to be used in a <code class="computeroutput">wait</code>
or <code class="computeroutput">async_wait</code> operation. [<span class="emphasis"><em>Note:</em></span>
The return value is typically representative of the duration from
<code class="computeroutput">Clock::now()</code> until the time point <code class="computeroutput">t</code>.
<span class="emphasis"><em>end note</em></span>]
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="WaitHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="WriteHandler.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,120 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Write handler requirements</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="WaitTraits.html" title="Wait traits requirements">
<link rel="next" href="any_io_executor.html" title="any_io_executor">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="WaitTraits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="any_io_executor.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.WriteHandler"></a><a class="link" href="WriteHandler.html" title="Write handler requirements">Write handler requirements</a>
</h3></div></div></div>
<p>
A write handler must meet the requirements for a <a class="link" href="Handler.html" title="Handlers">handler</a>.
A value <code class="computeroutput">h</code> of a write handler class should work correctly in
the expression <code class="computeroutput">h(ec, s)</code>, where <code class="computeroutput">ec</code> is an lvalue
of type <code class="computeroutput">const error_code</code> and <code class="computeroutput">s</code> is an lvalue of
type <code class="computeroutput">const size_t</code>.
</p>
<h5>
<a name="boost_asio.reference.WriteHandler.h0"></a>
<span class="phrase"><a name="boost_asio.reference.WriteHandler.examples"></a></span><a class="link" href="WriteHandler.html#boost_asio.reference.WriteHandler.examples">Examples</a>
</h5>
<p>
A free function as a write handler:
</p>
<pre class="programlisting">void write_handler(
const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
}
</pre>
<p>
A write handler function object:
</p>
<pre class="programlisting">struct write_handler
{
...
void operator()(
const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
}
...
};
</pre>
<p>
A lambda as a write handler:
</p>
<pre class="programlisting">socket.async_write(...
[](const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
});
</pre>
<p>
A non-static class member function adapted to a write handler using <code class="computeroutput">std::bind()</code>:
</p>
<pre class="programlisting">void my_class::write_handler(
const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
}
...
socket.async_write(...,
std::bind(&amp;my_class::write_handler,
this, std::placeholders::_1,
std::placeholders::_2));
</pre>
<p>
A non-static class member function adapted to a write handler using <code class="computeroutput">boost::bind()</code>:
</p>
<pre class="programlisting">void my_class::write_handler(
const boost::system::error_code&amp; ec,
std::size_t bytes_transferred)
{
...
}
...
socket.async_write(...,
boost::bind(&amp;my_class::write_handler,
this, boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="WaitTraits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="any_io_executor.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,301 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="WriteHandler.html" title="Write handler requirements">
<link rel="next" href="any_io_executor/any_io_executor.html" title="any_io_executor::any_io_executor">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="WriteHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="any_io_executor/any_io_executor.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.any_io_executor"></a><a class="link" href="any_io_executor.html" title="any_io_executor">any_io_executor</a>
</h3></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor"></a>
</p>
<p>
Polymorphic executor type for use with I/O objects.
</p>
<pre class="programlisting">class any_io_executor :
public execution::any_executor&lt; SupportableProperties &gt;
</pre>
<h5>
<a name="boost_asio.reference.any_io_executor.h0"></a>
<span class="phrase"><a name="boost_asio.reference.any_io_executor.member_functions"></a></span><a class="link" href="any_io_executor.html#boost_asio.reference.any_io_executor.member_functions">Member Functions</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Name
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/any_io_executor.html" title="any_io_executor::any_io_executor"><span class="bold"><strong>any_io_executor</strong></span></a> <span class="silver">[constructor]</span>
</p>
</td>
<td>
<p>
Default constructor. <br> <span class="silver"></span><br> Construct in an empty state.
Equivalent effects to default constructor. <br> <span class="silver"></span><br> Copy constructor.
<br> <span class="silver"></span><br> Move constructor. <br> <span class="silver"></span><br> Construct to point
to the same target as another any_executor. <br> <span class="silver"></span><br> Construct
a polymorphic wrapper for the specified executor.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/context.html" title="any_io_executor::context"><span class="bold"><strong>context</strong></span></a>
</p>
</td>
<td>
<p>
Obtain the underlying execution context.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/execute.html" title="any_io_executor::execute"><span class="bold"><strong>execute</strong></span></a>
</p>
</td>
<td>
<p>
Execute the function on the target executor.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/operator_bool.html" title="any_io_executor::operator bool"><span class="bold"><strong>operator bool</strong></span></a>
</p>
</td>
<td>
<p>
Determine whether the wrapper has a target executor.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/operator_eq_.html" title="any_io_executor::operator="><span class="bold"><strong>operator=</strong></span></a>
</p>
</td>
<td>
<p>
Assignment operator. <br> <span class="silver"></span><br> Move assignment operator. <br>
<span class="silver"></span><br> Assignment operator that sets the polymorphic wrapper to
the empty state.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/prefer.html" title="any_io_executor::prefer"><span class="bold"><strong>prefer</strong></span></a>
</p>
</td>
<td>
<p>
Obtain a polymorphic wrapper with the specified property.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/query.html" title="any_io_executor::query"><span class="bold"><strong>query</strong></span></a>
</p>
</td>
<td>
<p>
Obtain the value associated with the specified property.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/require.html" title="any_io_executor::require"><span class="bold"><strong>require</strong></span></a>
</p>
</td>
<td>
<p>
Obtain a polymorphic wrapper with the specified property.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/swap.html" title="any_io_executor::swap"><span class="bold"><strong>swap</strong></span></a>
</p>
</td>
<td>
<p>
Swap targets with another polymorphic wrapper.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/target.html" title="any_io_executor::target"><span class="bold"><strong>target</strong></span></a>
</p>
</td>
<td>
<p>
Get a pointer to the target executor.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/target_type.html" title="any_io_executor::target_type"><span class="bold"><strong>target_type</strong></span></a>
</p>
</td>
<td>
<p>
Get the type of the target executor.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/_any_io_executor.html" title="any_io_executor::~any_io_executor"><span class="bold"><strong>~any_io_executor</strong></span></a> <span class="silver">[destructor]</span>
</p>
</td>
<td>
<p>
Destructor.
</p>
</td>
</tr>
</tbody>
</table></div>
<h5>
<a name="boost_asio.reference.any_io_executor.h1"></a>
<span class="phrase"><a name="boost_asio.reference.any_io_executor.related_functions"></a></span><a class="link" href="any_io_executor.html#boost_asio.reference.any_io_executor.related_functions">Related
Functions</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Name
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/operator_not__eq_.html" title="any_io_executor::operator!="><span class="bold"><strong>operator!=</strong></span></a>
</p>
</td>
<td>
<p>
Inequality operator.
</p>
</td>
</tr>
<tr>
<td>
<p>
<a class="link" href="any_io_executor/operator_eq__eq_.html" title="any_io_executor::operator=="><span class="bold"><strong>operator==</strong></span></a>
</p>
</td>
<td>
<p>
Equality operator.
</p>
</td>
</tr>
</tbody>
</table></div>
<p>
The <code class="computeroutput">any_io_executor</code> type is a polymorphic executor that supports
the set of properties required by I/O objects. It is defined as the <a class="link" href="execution__any_executor.html" title="execution::any_executor"><code class="computeroutput">execution::any_executor</code></a>
class template parameterised as follows:
</p>
<pre class="programlisting">execution::any_executor&lt;
execution::context_as_t&lt;execution_context&amp;&gt;,
execution::blocking_t::never_t,
execution::prefer_only&lt;execution::blocking_t::possibly_t&gt;,
execution::prefer_only&lt;execution::outstanding_work_t::tracked_t&gt;,
execution::prefer_only&lt;execution::outstanding_work_t::untracked_t&gt;,
execution::prefer_only&lt;execution::relationship_t::fork_t&gt;,
execution::prefer_only&lt;execution::relationship_t::continuation_t&gt;
&gt;
</pre>
<h5>
<a name="boost_asio.reference.any_io_executor.h2"></a>
<span class="phrase"><a name="boost_asio.reference.any_io_executor.requirements"></a></span><a class="link" href="any_io_executor.html#boost_asio.reference.any_io_executor.requirements">Requirements</a>
</h5>
<p>
<span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/any_io_executor.hpp</code>
</p>
<p>
<span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="WriteHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="any_io_executor/any_io_executor.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,50 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::~any_io_executor</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="target_type.html" title="any_io_executor::target_type">
<link rel="next" href="../asio_handler_allocate.html" title="asio_handler_allocate">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="target_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="../asio_handler_allocate.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor._any_io_executor"></a><a class="link" href="_any_io_executor.html" title="any_io_executor::~any_io_executor">any_io_executor::~any_io_executor</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor._any_io_executor"></a>
Destructor.
</p>
<pre class="programlisting">~any_io_executor();
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="target_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="../asio_handler_allocate.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,91 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::any_io_executor</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="../any_io_executor.html" title="any_io_executor">
<link rel="next" href="any_io_executor/overload1.html" title="any_io_executor::any_io_executor (1 of 6 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../any_io_executor.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="any_io_executor/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.any_io_executor"></a><a class="link" href="any_io_executor.html" title="any_io_executor::any_io_executor">any_io_executor::any_io_executor</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.any_io_executor"></a>
Default
constructor.
</p>
<pre class="programlisting"><a class="link" href="any_io_executor/overload1.html" title="any_io_executor::any_io_executor (1 of 6 overloads)">any_io_executor</a>();
<span class="emphasis"><em>» <a class="link" href="any_io_executor/overload1.html" title="any_io_executor::any_io_executor (1 of 6 overloads)">more...</a></em></span>
</pre>
<p>
Construct in an empty state. Equivalent effects to default constructor.
</p>
<pre class="programlisting"><a class="link" href="any_io_executor/overload2.html" title="any_io_executor::any_io_executor (2 of 6 overloads)">any_io_executor</a>(
nullptr_t );
<span class="emphasis"><em>» <a class="link" href="any_io_executor/overload2.html" title="any_io_executor::any_io_executor (2 of 6 overloads)">more...</a></em></span>
</pre>
<p>
Copy constructor.
</p>
<pre class="programlisting"><a class="link" href="any_io_executor/overload3.html" title="any_io_executor::any_io_executor (3 of 6 overloads)">any_io_executor</a>(
const any_io_executor &amp; e);
<span class="emphasis"><em>» <a class="link" href="any_io_executor/overload3.html" title="any_io_executor::any_io_executor (3 of 6 overloads)">more...</a></em></span>
</pre>
<p>
Move constructor.
</p>
<pre class="programlisting"><a class="link" href="any_io_executor/overload4.html" title="any_io_executor::any_io_executor (4 of 6 overloads)">any_io_executor</a>(
any_io_executor &amp;&amp; e);
<span class="emphasis"><em>» <a class="link" href="any_io_executor/overload4.html" title="any_io_executor::any_io_executor (4 of 6 overloads)">more...</a></em></span>
</pre>
<p>
Construct to point to the same target as another any_executor.
</p>
<pre class="programlisting">template&lt;
class... OtherSupportableProperties&gt;
<a class="link" href="any_io_executor/overload5.html" title="any_io_executor::any_io_executor (5 of 6 overloads)">any_io_executor</a>(
execution::any_executor&lt; OtherSupportableProperties...&gt; e);
<span class="emphasis"><em>» <a class="link" href="any_io_executor/overload5.html" title="any_io_executor::any_io_executor (5 of 6 overloads)">more...</a></em></span>
</pre>
<p>
Construct a polymorphic wrapper for the specified executor.
</p>
<pre class="programlisting">template&lt;
BOOST_ASIO_EXECUTION_EXECUTOR <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>&gt;
<a class="link" href="any_io_executor/overload6.html" title="any_io_executor::any_io_executor (6 of 6 overloads)">any_io_executor</a>(
Executor e);
<span class="emphasis"><em>» <a class="link" href="any_io_executor/overload6.html" title="any_io_executor::any_io_executor (6 of 6 overloads)">more...</a></em></span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../any_io_executor.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="any_io_executor/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,50 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::any_io_executor (1 of 6 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor::any_io_executor">
<link rel="prev" href="../any_io_executor.html" title="any_io_executor::any_io_executor">
<link rel="next" href="overload2.html" title="any_io_executor::any_io_executor (2 of 6 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../any_io_executor.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.any_io_executor.overload1"></a><a class="link" href="overload1.html" title="any_io_executor::any_io_executor (1 of 6 overloads)">any_io_executor::any_io_executor
(1 of 6 overloads)</a>
</h5></div></div></div>
<p>
Default constructor.
</p>
<pre class="programlisting">any_io_executor();
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../any_io_executor.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,51 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::any_io_executor (2 of 6 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor::any_io_executor">
<link rel="prev" href="overload1.html" title="any_io_executor::any_io_executor (1 of 6 overloads)">
<link rel="next" href="overload3.html" title="any_io_executor::any_io_executor (3 of 6 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="overload3.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.any_io_executor.overload2"></a><a class="link" href="overload2.html" title="any_io_executor::any_io_executor (2 of 6 overloads)">any_io_executor::any_io_executor
(2 of 6 overloads)</a>
</h5></div></div></div>
<p>
Construct in an empty state. Equivalent effects to default constructor.
</p>
<pre class="programlisting">any_io_executor(
nullptr_t );
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="overload3.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,51 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::any_io_executor (3 of 6 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor::any_io_executor">
<link rel="prev" href="overload2.html" title="any_io_executor::any_io_executor (2 of 6 overloads)">
<link rel="next" href="overload4.html" title="any_io_executor::any_io_executor (4 of 6 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload2.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="overload4.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.any_io_executor.overload3"></a><a class="link" href="overload3.html" title="any_io_executor::any_io_executor (3 of 6 overloads)">any_io_executor::any_io_executor
(3 of 6 overloads)</a>
</h5></div></div></div>
<p>
Copy constructor.
</p>
<pre class="programlisting">any_io_executor(
const any_io_executor &amp; e);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload2.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="overload4.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,51 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::any_io_executor (4 of 6 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor::any_io_executor">
<link rel="prev" href="overload3.html" title="any_io_executor::any_io_executor (3 of 6 overloads)">
<link rel="next" href="overload5.html" title="any_io_executor::any_io_executor (5 of 6 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload3.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="overload5.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.any_io_executor.overload4"></a><a class="link" href="overload4.html" title="any_io_executor::any_io_executor (4 of 6 overloads)">any_io_executor::any_io_executor
(4 of 6 overloads)</a>
</h5></div></div></div>
<p>
Move constructor.
</p>
<pre class="programlisting">any_io_executor(
any_io_executor &amp;&amp; e);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload3.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="overload5.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,53 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::any_io_executor (5 of 6 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor::any_io_executor">
<link rel="prev" href="overload4.html" title="any_io_executor::any_io_executor (4 of 6 overloads)">
<link rel="next" href="overload6.html" title="any_io_executor::any_io_executor (6 of 6 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload4.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="overload6.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.any_io_executor.overload5"></a><a class="link" href="overload5.html" title="any_io_executor::any_io_executor (5 of 6 overloads)">any_io_executor::any_io_executor
(5 of 6 overloads)</a>
</h5></div></div></div>
<p>
Construct to point to the same target as another any_executor.
</p>
<pre class="programlisting">template&lt;
class... OtherSupportableProperties&gt;
any_io_executor(
execution::any_executor&lt; OtherSupportableProperties...&gt; e);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload4.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="overload6.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,53 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::any_io_executor (6 of 6 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor::any_io_executor">
<link rel="prev" href="overload5.html" title="any_io_executor::any_io_executor (5 of 6 overloads)">
<link rel="next" href="../context.html" title="any_io_executor::context">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload5.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="../context.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.any_io_executor.overload6"></a><a class="link" href="overload6.html" title="any_io_executor::any_io_executor (6 of 6 overloads)">any_io_executor::any_io_executor
(6 of 6 overloads)</a>
</h5></div></div></div>
<p>
Construct a polymorphic wrapper for the specified executor.
</p>
<pre class="programlisting">template&lt;
BOOST_ASIO_EXECUTION_EXECUTOR <a class="link" href="../../Executor1.html" title="Executor requirements">Executor</a>&gt;
any_io_executor(
Executor e);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload5.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="../context.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,60 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::context</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="any_io_executor/overload6.html" title="any_io_executor::any_io_executor (6 of 6 overloads)">
<link rel="next" href="execute.html" title="any_io_executor::execute">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="any_io_executor/overload6.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="execute.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.context"></a><a class="link" href="context.html" title="any_io_executor::context">any_io_executor::context</a>
</h4></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.context"></a>
Obtain
the underlying execution context.
</p>
<pre class="programlisting">automatically_determined context() const;
</pre>
<p>
This function is provided for backward compatibility. It is automatically
defined when the <code class="computeroutput">SupportableProperties</code>... list includes a
property of type <code class="computeroutput">execution::context_as&lt;U&gt;</code>, for some
type <code class="computeroutput">U</code>.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="any_io_executor/overload6.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="execute.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,71 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::execute</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="context.html" title="any_io_executor::context">
<link rel="next" href="operator_bool.html" title="any_io_executor::operator bool">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="context.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="operator_bool.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.execute"></a><a class="link" href="execute.html" title="any_io_executor::execute">any_io_executor::execute</a>
</h4></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.execute"></a>
Execute
the function on the target executor.
</p>
<pre class="programlisting">template&lt;
typename Function&gt;
void execute(
Function &amp;&amp; f) const;
</pre>
<p>
Do not call this function directly. It is intended for use with the <a class="link" href="../execution__execute.html" title="execution::execute"><code class="computeroutput">execution::execute</code></a>
customisation point.
</p>
<p>
For example:
</p>
<pre class="programlisting">execution::any_executor&lt;&gt; ex = ...;
execution::execute(ex, my_function_object);
</pre>
<p>
Throws <a class="link" href="../bad_executor.html" title="bad_executor"><code class="computeroutput">bad_executor</code></a>
if the polymorphic wrapper has no target.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="context.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="operator_bool.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,64 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator bool</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="execute.html" title="any_io_executor::execute">
<link rel="next" href="operator_not__eq_.html" title="any_io_executor::operator!=">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="execute.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="operator_not__eq_.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.operator_bool"></a><a class="link" href="operator_bool.html" title="any_io_executor::operator bool">any_io_executor::operator
bool</a>
</h4></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.operator_bool"></a>
Determine
whether the wrapper has a target executor.
</p>
<pre class="programlisting">operator bool() const;
</pre>
<h6>
<a name="boost_asio.reference.any_io_executor.operator_bool.h0"></a>
<span class="phrase"><a name="boost_asio.reference.any_io_executor.operator_bool.return_value"></a></span><a class="link" href="operator_bool.html#boost_asio.reference.any_io_executor.operator_bool.return_value">Return
Value</a>
</h6>
<p>
<code class="computeroutput">true</code> if the polymorphic wrapper has a target executor, otherwise
false.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="execute.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="operator_not__eq_.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,67 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator=</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="operator_not__eq_/overload3.html" title="any_io_executor::operator!= (3 of 3 overloads)">
<link rel="next" href="operator_eq_/overload1.html" title="any_io_executor::operator= (1 of 3 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="operator_not__eq_/overload3.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="operator_eq_/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.operator_eq_"></a><a class="link" href="operator_eq_.html" title="any_io_executor::operator=">any_io_executor::operator=</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.operator_eq_"></a>
Assignment
operator.
</p>
<pre class="programlisting">any_io_executor &amp; <a class="link" href="operator_eq_/overload1.html" title="any_io_executor::operator= (1 of 3 overloads)">operator=</a>(
const any_io_executor &amp; e);
<span class="emphasis"><em>» <a class="link" href="operator_eq_/overload1.html" title="any_io_executor::operator= (1 of 3 overloads)">more...</a></em></span>
</pre>
<p>
Move assignment operator.
</p>
<pre class="programlisting">any_io_executor &amp; <a class="link" href="operator_eq_/overload2.html" title="any_io_executor::operator= (2 of 3 overloads)">operator=</a>(
any_io_executor &amp;&amp; e);
<span class="emphasis"><em>» <a class="link" href="operator_eq_/overload2.html" title="any_io_executor::operator= (2 of 3 overloads)">more...</a></em></span>
</pre>
<p>
Assignment operator that sets the polymorphic wrapper to the empty state.
</p>
<pre class="programlisting">any_io_executor &amp; <a class="link" href="operator_eq_/overload3.html" title="any_io_executor::operator= (3 of 3 overloads)">operator=</a>(
nullptr_t );
<span class="emphasis"><em>» <a class="link" href="operator_eq_/overload3.html" title="any_io_executor::operator= (3 of 3 overloads)">more...</a></em></span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="operator_not__eq_/overload3.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="operator_eq_/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,51 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator= (1 of 3 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../operator_eq_.html" title="any_io_executor::operator=">
<link rel="prev" href="../operator_eq_.html" title="any_io_executor::operator=">
<link rel="next" href="overload2.html" title="any_io_executor::operator= (2 of 3 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../operator_eq_.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq_.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.operator_eq_.overload1"></a><a class="link" href="overload1.html" title="any_io_executor::operator= (1 of 3 overloads)">any_io_executor::operator=
(1 of 3 overloads)</a>
</h5></div></div></div>
<p>
Assignment operator.
</p>
<pre class="programlisting">any_io_executor &amp; operator=(
const any_io_executor &amp; e);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../operator_eq_.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq_.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,51 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator= (2 of 3 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../operator_eq_.html" title="any_io_executor::operator=">
<link rel="prev" href="overload1.html" title="any_io_executor::operator= (1 of 3 overloads)">
<link rel="next" href="overload3.html" title="any_io_executor::operator= (3 of 3 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq_.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="overload3.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.operator_eq_.overload2"></a><a class="link" href="overload2.html" title="any_io_executor::operator= (2 of 3 overloads)">any_io_executor::operator=
(2 of 3 overloads)</a>
</h5></div></div></div>
<p>
Move assignment operator.
</p>
<pre class="programlisting">any_io_executor &amp; operator=(
any_io_executor &amp;&amp; e);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq_.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="overload3.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,51 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator= (3 of 3 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../operator_eq_.html" title="any_io_executor::operator=">
<link rel="prev" href="overload2.html" title="any_io_executor::operator= (2 of 3 overloads)">
<link rel="next" href="../operator_eq__eq_.html" title="any_io_executor::operator==">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload2.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq_.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="../operator_eq__eq_.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.operator_eq_.overload3"></a><a class="link" href="overload3.html" title="any_io_executor::operator= (3 of 3 overloads)">any_io_executor::operator=
(3 of 3 overloads)</a>
</h5></div></div></div>
<p>
Assignment operator that sets the polymorphic wrapper to the empty state.
</p>
<pre class="programlisting">any_io_executor &amp; operator=(
nullptr_t );
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload2.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq_.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="../operator_eq__eq_.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,64 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator==</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="operator_eq_/overload3.html" title="any_io_executor::operator= (3 of 3 overloads)">
<link rel="next" href="operator_eq__eq_/overload1.html" title="any_io_executor::operator== (1 of 3 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="operator_eq_/overload3.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="operator_eq__eq_/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.operator_eq__eq_"></a><a class="link" href="operator_eq__eq_.html" title="any_io_executor::operator==">any_io_executor::operator==</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.operator_eq__eq_"></a>
Equality
operator.
</p>
<pre class="programlisting">bool <a class="link" href="operator_eq__eq_/overload1.html" title="any_io_executor::operator== (1 of 3 overloads)">operator==</a>(
const any_executor&lt; SupportableProperties...&gt; &amp; a,
const any_executor&lt; SupportableProperties...&gt; &amp; b);
<span class="emphasis"><em>» <a class="link" href="operator_eq__eq_/overload1.html" title="any_io_executor::operator== (1 of 3 overloads)">more...</a></em></span>
bool <a class="link" href="operator_eq__eq_/overload2.html" title="any_io_executor::operator== (2 of 3 overloads)">operator==</a>(
const any_executor&lt; SupportableProperties...&gt; &amp; a,
nullptr_t );
<span class="emphasis"><em>» <a class="link" href="operator_eq__eq_/overload2.html" title="any_io_executor::operator== (2 of 3 overloads)">more...</a></em></span>
bool <a class="link" href="operator_eq__eq_/overload3.html" title="any_io_executor::operator== (3 of 3 overloads)">operator==</a>(
nullptr_t ,
const any_executor&lt; SupportableProperties...&gt; &amp; b);
<span class="emphasis"><em>» <a class="link" href="operator_eq__eq_/overload3.html" title="any_io_executor::operator== (3 of 3 overloads)">more...</a></em></span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="operator_eq_/overload3.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="operator_eq__eq_/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,55 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator== (1 of 3 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../operator_eq__eq_.html" title="any_io_executor::operator==">
<link rel="prev" href="../operator_eq__eq_.html" title="any_io_executor::operator==">
<link rel="next" href="overload2.html" title="any_io_executor::operator== (2 of 3 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../operator_eq__eq_.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq__eq_.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.operator_eq__eq_.overload1"></a><a class="link" href="overload1.html" title="any_io_executor::operator== (1 of 3 overloads)">any_io_executor::operator==
(1 of 3 overloads)</a>
</h5></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
Equality operator.
</p>
<pre class="programlisting">bool operator==(
const any_executor&lt; SupportableProperties...&gt; &amp; a,
const any_executor&lt; SupportableProperties...&gt; &amp; b);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../operator_eq__eq_.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq__eq_.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,55 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator== (2 of 3 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../operator_eq__eq_.html" title="any_io_executor::operator==">
<link rel="prev" href="overload1.html" title="any_io_executor::operator== (1 of 3 overloads)">
<link rel="next" href="overload3.html" title="any_io_executor::operator== (3 of 3 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq__eq_.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="overload3.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.operator_eq__eq_.overload2"></a><a class="link" href="overload2.html" title="any_io_executor::operator== (2 of 3 overloads)">any_io_executor::operator==
(2 of 3 overloads)</a>
</h5></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
Equality operator.
</p>
<pre class="programlisting">bool operator==(
const any_executor&lt; SupportableProperties...&gt; &amp; a,
nullptr_t );
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq__eq_.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="overload3.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,55 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator== (3 of 3 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../operator_eq__eq_.html" title="any_io_executor::operator==">
<link rel="prev" href="overload2.html" title="any_io_executor::operator== (2 of 3 overloads)">
<link rel="next" href="../prefer.html" title="any_io_executor::prefer">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload2.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq__eq_.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="../prefer.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.operator_eq__eq_.overload3"></a><a class="link" href="overload3.html" title="any_io_executor::operator== (3 of 3 overloads)">any_io_executor::operator==
(3 of 3 overloads)</a>
</h5></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
Equality operator.
</p>
<pre class="programlisting">bool operator==(
nullptr_t ,
const any_executor&lt; SupportableProperties...&gt; &amp; b);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload2.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_eq__eq_.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="../prefer.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,64 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator!=</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="operator_bool.html" title="any_io_executor::operator bool">
<link rel="next" href="operator_not__eq_/overload1.html" title="any_io_executor::operator!= (1 of 3 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="operator_bool.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="operator_not__eq_/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.operator_not__eq_"></a><a class="link" href="operator_not__eq_.html" title="any_io_executor::operator!=">any_io_executor::operator!=</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.operator_not__eq_"></a>
Inequality
operator.
</p>
<pre class="programlisting">bool <a class="link" href="operator_not__eq_/overload1.html" title="any_io_executor::operator!= (1 of 3 overloads)">operator!=</a>(
const any_executor&lt; SupportableProperties...&gt; &amp; a,
const any_executor&lt; SupportableProperties...&gt; &amp; b);
<span class="emphasis"><em>» <a class="link" href="operator_not__eq_/overload1.html" title="any_io_executor::operator!= (1 of 3 overloads)">more...</a></em></span>
bool <a class="link" href="operator_not__eq_/overload2.html" title="any_io_executor::operator!= (2 of 3 overloads)">operator!=</a>(
const any_executor&lt; SupportableProperties...&gt; &amp; a,
nullptr_t );
<span class="emphasis"><em>» <a class="link" href="operator_not__eq_/overload2.html" title="any_io_executor::operator!= (2 of 3 overloads)">more...</a></em></span>
bool <a class="link" href="operator_not__eq_/overload3.html" title="any_io_executor::operator!= (3 of 3 overloads)">operator!=</a>(
nullptr_t ,
const any_executor&lt; SupportableProperties...&gt; &amp; b);
<span class="emphasis"><em>» <a class="link" href="operator_not__eq_/overload3.html" title="any_io_executor::operator!= (3 of 3 overloads)">more...</a></em></span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="operator_bool.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="operator_not__eq_/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,55 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator!= (1 of 3 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../operator_not__eq_.html" title="any_io_executor::operator!=">
<link rel="prev" href="../operator_not__eq_.html" title="any_io_executor::operator!=">
<link rel="next" href="overload2.html" title="any_io_executor::operator!= (2 of 3 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../operator_not__eq_.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_not__eq_.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.operator_not__eq_.overload1"></a><a class="link" href="overload1.html" title="any_io_executor::operator!= (1 of 3 overloads)">any_io_executor::operator!=
(1 of 3 overloads)</a>
</h5></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
Inequality operator.
</p>
<pre class="programlisting">bool operator!=(
const any_executor&lt; SupportableProperties...&gt; &amp; a,
const any_executor&lt; SupportableProperties...&gt; &amp; b);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../operator_not__eq_.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_not__eq_.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,55 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator!= (2 of 3 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../operator_not__eq_.html" title="any_io_executor::operator!=">
<link rel="prev" href="overload1.html" title="any_io_executor::operator!= (1 of 3 overloads)">
<link rel="next" href="overload3.html" title="any_io_executor::operator!= (3 of 3 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_not__eq_.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="overload3.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.operator_not__eq_.overload2"></a><a class="link" href="overload2.html" title="any_io_executor::operator!= (2 of 3 overloads)">any_io_executor::operator!=
(2 of 3 overloads)</a>
</h5></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
Inequality operator.
</p>
<pre class="programlisting">bool operator!=(
const any_executor&lt; SupportableProperties...&gt; &amp; a,
nullptr_t );
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_not__eq_.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="overload3.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,55 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::operator!= (3 of 3 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../operator_not__eq_.html" title="any_io_executor::operator!=">
<link rel="prev" href="overload2.html" title="any_io_executor::operator!= (2 of 3 overloads)">
<link rel="next" href="../operator_eq_.html" title="any_io_executor::operator=">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload2.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_not__eq_.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="../operator_eq_.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.operator_not__eq_.overload3"></a><a class="link" href="overload3.html" title="any_io_executor::operator!= (3 of 3 overloads)">any_io_executor::operator!=
(3 of 3 overloads)</a>
</h5></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
Inequality operator.
</p>
<pre class="programlisting">bool operator!=(
nullptr_t ,
const any_executor&lt; SupportableProperties...&gt; &amp; b);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload2.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator_not__eq_.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="../operator_eq_.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,62 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::prefer</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="operator_eq__eq_/overload3.html" title="any_io_executor::operator== (3 of 3 overloads)">
<link rel="next" href="prefer/overload1.html" title="any_io_executor::prefer (1 of 2 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="operator_eq__eq_/overload3.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="prefer/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.prefer"></a><a class="link" href="prefer.html" title="any_io_executor::prefer">any_io_executor::prefer</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.prefer"></a>
Obtain
a polymorphic wrapper with the specified property.
</p>
<pre class="programlisting">template&lt;
typename Property&gt;
any_io_executor <a class="link" href="prefer/overload1.html" title="any_io_executor::prefer (1 of 2 overloads)">prefer</a>(
const Property &amp; p,
typename constraint&lt; traits::prefer_member&lt; const base_type &amp;, const Property &amp; &gt;::is_valid &gt;::type = 0) const;
<span class="emphasis"><em>» <a class="link" href="prefer/overload1.html" title="any_io_executor::prefer (1 of 2 overloads)">more...</a></em></span>
template&lt;
typename Property&gt;
any_executor <a class="link" href="prefer/overload2.html" title="any_io_executor::prefer (2 of 2 overloads)">prefer</a>(
Property ) const;
<span class="emphasis"><em>» <a class="link" href="prefer/overload2.html" title="any_io_executor::prefer (2 of 2 overloads)">more...</a></em></span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="operator_eq__eq_/overload3.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="prefer/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,65 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::prefer (1 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../prefer.html" title="any_io_executor::prefer">
<link rel="prev" href="../prefer.html" title="any_io_executor::prefer">
<link rel="next" href="overload2.html" title="any_io_executor::prefer (2 of 2 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../prefer.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../prefer.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.prefer.overload1"></a><a class="link" href="overload1.html" title="any_io_executor::prefer (1 of 2 overloads)">any_io_executor::prefer
(1 of 2 overloads)</a>
</h5></div></div></div>
<p>
Obtain a polymorphic wrapper with the specified property.
</p>
<pre class="programlisting">template&lt;
typename Property&gt;
any_io_executor prefer(
const Property &amp; p,
typename constraint&lt; traits::prefer_member&lt; const base_type &amp;, const Property &amp; &gt;::is_valid &gt;::type = 0) const;
</pre>
<p>
Do not call this function directly. It is intended for use with the
<a class="link" href="../../prefer.html" title="prefer"><code class="computeroutput">prefer</code></a>
customisation point.
</p>
<p>
For example:
</p>
<pre class="programlisting">any_io_executor ex = ...;
auto ex2 = boost::asio::prefer(ex, execution::blocking.possibly);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../prefer.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../prefer.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,67 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::prefer (2 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../prefer.html" title="any_io_executor::prefer">
<link rel="prev" href="overload1.html" title="any_io_executor::prefer (1 of 2 overloads)">
<link rel="next" href="../query.html" title="any_io_executor::query">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../prefer.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="../query.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.prefer.overload2"></a><a class="link" href="overload2.html" title="any_io_executor::prefer (2 of 2 overloads)">any_io_executor::prefer
(2 of 2 overloads)</a>
</h5></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
Obtain a polymorphic wrapper with the specified property.
</p>
<pre class="programlisting">template&lt;
typename Property&gt;
any_executor prefer(
Property ) const;
</pre>
<p>
Do not call this function directly. It is intended for use with the
<a class="link" href="../../prefer.html" title="prefer"><code class="computeroutput">prefer</code></a>
customisation point.
</p>
<p>
For example:
</p>
<pre class="programlisting">execution::any_executor&lt;execution::blocking_t::possibly_t&gt; ex = ...;
auto ex2 = boost::asio::prefer(ex, execution::blocking.possibly);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../prefer.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="../query.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,67 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::query</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="prefer/overload2.html" title="any_io_executor::prefer (2 of 2 overloads)">
<link rel="next" href="require.html" title="any_io_executor::require">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="prefer/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="require.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.query"></a><a class="link" href="query.html" title="any_io_executor::query">any_io_executor::query</a>
</h4></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.query"></a>
Obtain the
value associated with the specified property.
</p>
<pre class="programlisting">template&lt;
typename Property&gt;
Property::polymorphic_query_result_type query(
Property ) const;
</pre>
<p>
Do not call this function directly. It is intended for use with the <a class="link" href="../query.html" title="query"><code class="computeroutput">query</code></a> customisation
point.
</p>
<p>
For example:
</p>
<pre class="programlisting">execution::any_executor&lt;execution::occupancy_t&gt; ex = ...;
size_t n = boost::asio::query(ex, execution::occupancy);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="prefer/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="require.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,62 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::require</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="query.html" title="any_io_executor::query">
<link rel="next" href="require/overload1.html" title="any_io_executor::require (1 of 2 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="query.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="require/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.require"></a><a class="link" href="require.html" title="any_io_executor::require">any_io_executor::require</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.require"></a>
Obtain
a polymorphic wrapper with the specified property.
</p>
<pre class="programlisting">template&lt;
typename Property&gt;
any_io_executor <a class="link" href="require/overload1.html" title="any_io_executor::require (1 of 2 overloads)">require</a>(
const Property &amp; p,
typename constraint&lt; traits::require_member&lt; const base_type &amp;, const Property &amp; &gt;::is_valid &gt;::type = 0) const;
<span class="emphasis"><em>» <a class="link" href="require/overload1.html" title="any_io_executor::require (1 of 2 overloads)">more...</a></em></span>
template&lt;
typename Property&gt;
any_executor <a class="link" href="require/overload2.html" title="any_io_executor::require (2 of 2 overloads)">require</a>(
Property ) const;
<span class="emphasis"><em>» <a class="link" href="require/overload2.html" title="any_io_executor::require (2 of 2 overloads)">more...</a></em></span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="query.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="require/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,66 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::require (1 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../require.html" title="any_io_executor::require">
<link rel="prev" href="../require.html" title="any_io_executor::require">
<link rel="next" href="overload2.html" title="any_io_executor::require (2 of 2 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../require.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../require.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.require.overload1"></a><a class="link" href="overload1.html" title="any_io_executor::require (1 of 2 overloads)">any_io_executor::require
(1 of 2 overloads)</a>
</h5></div></div></div>
<p>
Obtain a polymorphic wrapper with the specified property.
</p>
<pre class="programlisting">template&lt;
typename Property&gt;
any_io_executor require(
const Property &amp; p,
typename constraint&lt; traits::require_member&lt; const base_type &amp;, const Property &amp; &gt;::is_valid &gt;::type = 0) const;
</pre>
<p>
Do not call this function directly. It is intended for use with the
<a class="link" href="../../require.html" title="require"><code class="computeroutput">require</code></a>
and <a class="link" href="../../prefer.html" title="prefer"><code class="computeroutput">prefer</code></a>
customisation points.
</p>
<p>
For example:
</p>
<pre class="programlisting">any_io_executor ex = ...;
auto ex2 = boost::asio::require(ex, execution::blocking.possibly);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../require.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../require.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,68 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::require (2 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../require.html" title="any_io_executor::require">
<link rel="prev" href="overload1.html" title="any_io_executor::require (1 of 2 overloads)">
<link rel="next" href="../swap.html" title="any_io_executor::swap">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../require.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="../swap.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.require.overload2"></a><a class="link" href="overload2.html" title="any_io_executor::require (2 of 2 overloads)">any_io_executor::require
(2 of 2 overloads)</a>
</h5></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
Obtain a polymorphic wrapper with the specified property.
</p>
<pre class="programlisting">template&lt;
typename Property&gt;
any_executor require(
Property ) const;
</pre>
<p>
Do not call this function directly. It is intended for use with the
<a class="link" href="../../require.html" title="require"><code class="computeroutput">require</code></a>
and <a class="link" href="../../prefer.html" title="prefer"><code class="computeroutput">prefer</code></a>
customisation points.
</p>
<p>
For example:
</p>
<pre class="programlisting">execution::any_executor&lt;execution::blocking_t::possibly_t&gt; ex = ...;
auto ex2 = boost::asio::requre(ex, execution::blocking.possibly);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../require.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="../swap.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,57 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::swap</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="require/overload2.html" title="any_io_executor::require (2 of 2 overloads)">
<link rel="next" href="swap/overload1.html" title="any_io_executor::swap (1 of 2 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="require/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="swap/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.swap"></a><a class="link" href="swap.html" title="any_io_executor::swap">any_io_executor::swap</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.swap"></a>
Swap targets
with another polymorphic wrapper.
</p>
<pre class="programlisting">void <a class="link" href="swap/overload1.html" title="any_io_executor::swap (1 of 2 overloads)">swap</a>(
any_io_executor &amp; other);
<span class="emphasis"><em>» <a class="link" href="swap/overload1.html" title="any_io_executor::swap (1 of 2 overloads)">more...</a></em></span>
void <a class="link" href="swap/overload2.html" title="any_io_executor::swap (2 of 2 overloads)">swap</a>(
any_executor &amp; other);
<span class="emphasis"><em>» <a class="link" href="swap/overload2.html" title="any_io_executor::swap (2 of 2 overloads)">more...</a></em></span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="require/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="swap/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,51 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::swap (1 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../swap.html" title="any_io_executor::swap">
<link rel="prev" href="../swap.html" title="any_io_executor::swap">
<link rel="next" href="overload2.html" title="any_io_executor::swap (2 of 2 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../swap.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../swap.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.swap.overload1"></a><a class="link" href="overload1.html" title="any_io_executor::swap (1 of 2 overloads)">any_io_executor::swap
(1 of 2 overloads)</a>
</h5></div></div></div>
<p>
Swap targets with another polymorphic wrapper.
</p>
<pre class="programlisting">void swap(
any_io_executor &amp; other);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../swap.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../swap.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,54 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::swap (2 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../swap.html" title="any_io_executor::swap">
<link rel="prev" href="overload1.html" title="any_io_executor::swap (1 of 2 overloads)">
<link rel="next" href="../target.html" title="any_io_executor::target">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../swap.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="../target.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.swap.overload2"></a><a class="link" href="overload2.html" title="any_io_executor::swap (2 of 2 overloads)">any_io_executor::swap
(2 of 2 overloads)</a>
</h5></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
Swap targets with another polymorphic wrapper.
</p>
<pre class="programlisting">void swap(
any_executor &amp; other);
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../swap.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="../target.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,59 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::target</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="swap/overload2.html" title="any_io_executor::swap (2 of 2 overloads)">
<link rel="next" href="target/overload1.html" title="any_io_executor::target (1 of 2 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="swap/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="target/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.target"></a><a class="link" href="target.html" title="any_io_executor::target">any_io_executor::target</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.target"></a>
Get a pointer
to the target executor.
</p>
<pre class="programlisting">template&lt;
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>&gt;
Executor * <a class="link" href="target/overload1.html" title="any_io_executor::target (1 of 2 overloads)">target</a>();
<span class="emphasis"><em>» <a class="link" href="target/overload1.html" title="any_io_executor::target (1 of 2 overloads)">more...</a></em></span>
template&lt;
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>&gt;
const Executor * <a class="link" href="target/overload2.html" title="any_io_executor::target (2 of 2 overloads)">target</a>() const;
<span class="emphasis"><em>» <a class="link" href="target/overload2.html" title="any_io_executor::target (2 of 2 overloads)">more...</a></em></span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="swap/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="target/overload1.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,55 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::target (1 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../target.html" title="any_io_executor::target">
<link rel="prev" href="../target.html" title="any_io_executor::target">
<link rel="next" href="overload2.html" title="any_io_executor::target (2 of 2 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../target.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../target.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.target.overload1"></a><a class="link" href="overload1.html" title="any_io_executor::target (1 of 2 overloads)">any_io_executor::target
(1 of 2 overloads)</a>
</h5></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
Get a pointer to the target executor.
</p>
<pre class="programlisting">template&lt;
typename <a class="link" href="../../Executor1.html" title="Executor requirements">Executor</a>&gt;
Executor * target();
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../target.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../target.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,55 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::target (2 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../target.html" title="any_io_executor::target">
<link rel="prev" href="overload1.html" title="any_io_executor::target (1 of 2 overloads)">
<link rel="next" href="../target_type.html" title="any_io_executor::target_type">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../target.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="../target_type.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_asio.reference.any_io_executor.target.overload2"></a><a class="link" href="overload2.html" title="any_io_executor::target (2 of 2 overloads)">any_io_executor::target
(2 of 2 overloads)</a>
</h5></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
Get a pointer to the target executor.
</p>
<pre class="programlisting">template&lt;
typename <a class="link" href="../../Executor1.html" title="Executor requirements">Executor</a>&gt;
const Executor * target() const;
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../target.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="../target_type.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,54 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>any_io_executor::target_type</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../any_io_executor.html" title="any_io_executor">
<link rel="prev" href="target/overload2.html" title="any_io_executor::target (2 of 2 overloads)">
<link rel="next" href="_any_io_executor.html" title="any_io_executor::~any_io_executor">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="target/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="_any_io_executor.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.any_io_executor.target_type"></a><a class="link" href="target_type.html" title="any_io_executor::target_type">any_io_executor::target_type</a>
</h4></div></div></div>
<p>
<span class="emphasis"><em>Inherited from execution::any_executor.</em></span>
</p>
<p>
<a class="indexterm" name="boost_asio.indexterm.any_io_executor.target_type"></a>
Get
the type of the target executor.
</p>
<pre class="programlisting">const type_info &amp; target_type() const;
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="target/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../any_io_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="_any_io_executor.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,103 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>asio_handler_allocate</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="any_io_executor/_any_io_executor.html" title="any_io_executor::~any_io_executor">
<link rel="next" href="asio_handler_deallocate.html" title="asio_handler_deallocate">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="any_io_executor/_any_io_executor.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="asio_handler_deallocate.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.asio_handler_allocate"></a><a class="link" href="asio_handler_allocate.html" title="asio_handler_allocate">asio_handler_allocate</a>
</h3></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.asio_handler_allocate"></a>
(Deprecated:
Use the <a class="link" href="associated_allocator.html" title="associated_allocator"><code class="computeroutput">associated_allocator</code></a>
trait.) Default allocation function for handlers.
</p>
<pre class="programlisting">asio_handler_allocate_is_deprecated asio_handler_allocate(
std::size_t size,
... );
</pre>
<p>
Asynchronous operations may need to allocate temporary objects. Since asynchronous
operations have a handler function object, these temporary objects can be
said to be associated with the handler.
</p>
<p>
Implement asio_handler_allocate and asio_handler_deallocate for your own
handlers to provide custom allocation for these temporary objects.
</p>
<p>
The default implementation of these allocation hooks uses <code class="computeroutput">operator
new</code> and <code class="computeroutput">operator delete</code>.
</p>
<h5>
<a name="boost_asio.reference.asio_handler_allocate.h0"></a>
<span class="phrase"><a name="boost_asio.reference.asio_handler_allocate.remarks"></a></span><a class="link" href="asio_handler_allocate.html#boost_asio.reference.asio_handler_allocate.remarks">Remarks</a>
</h5>
<p>
All temporary objects associated with a handler will be deallocated before
the upcall to the handler is performed. This allows the same memory to be
reused for a subsequent asynchronous operation initiated by the handler.
</p>
<h5>
<a name="boost_asio.reference.asio_handler_allocate.h1"></a>
<span class="phrase"><a name="boost_asio.reference.asio_handler_allocate.example"></a></span><a class="link" href="asio_handler_allocate.html#boost_asio.reference.asio_handler_allocate.example">Example</a>
</h5>
<pre class="programlisting">class my_handler;
void* asio_handler_allocate(std::size_t size, my_handler* context)
{
return ::operator new(size);
}
void asio_handler_deallocate(void* pointer, std::size_t size,
my_handler* context)
{
::operator delete(pointer);
}
</pre>
<h5>
<a name="boost_asio.reference.asio_handler_allocate.h2"></a>
<span class="phrase"><a name="boost_asio.reference.asio_handler_allocate.requirements"></a></span><a class="link" href="asio_handler_allocate.html#boost_asio.reference.asio_handler_allocate.requirements">Requirements</a>
</h5>
<p>
<span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/handler_alloc_hook.hpp</code>
</p>
<p>
<span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="any_io_executor/_any_io_executor.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="asio_handler_deallocate.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,72 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>asio_handler_deallocate</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="asio_handler_allocate.html" title="asio_handler_allocate">
<link rel="next" href="asio_handler_invoke.html" title="asio_handler_invoke">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="asio_handler_allocate.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="asio_handler_invoke.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.asio_handler_deallocate"></a><a class="link" href="asio_handler_deallocate.html" title="asio_handler_deallocate">asio_handler_deallocate</a>
</h3></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.asio_handler_deallocate"></a>
Default
deallocation function for handlers.
</p>
<pre class="programlisting">asio_handler_deallocate_is_deprecated asio_handler_deallocate(
void * pointer,
std::size_t size,
... );
</pre>
<p>
Implement asio_handler_allocate and asio_handler_deallocate for your own
handlers to provide custom allocation for the associated temporary objects.
</p>
<p>
The default implementation of these allocation hooks uses <code class="computeroutput">operator
new</code> and <code class="computeroutput">operator delete</code>.
</p>
<h5>
<a name="boost_asio.reference.asio_handler_deallocate.h0"></a>
<span class="phrase"><a name="boost_asio.reference.asio_handler_deallocate.requirements"></a></span><a class="link" href="asio_handler_deallocate.html#boost_asio.reference.asio_handler_deallocate.requirements">Requirements</a>
</h5>
<p>
<span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/handler_alloc_hook.hpp</code>
</p>
<p>
<span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="asio_handler_allocate.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="asio_handler_invoke.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,123 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>asio_handler_invoke</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="asio_handler_deallocate.html" title="asio_handler_deallocate">
<link rel="next" href="asio_handler_invoke/overload1.html" title="asio_handler_invoke (1 of 2 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="asio_handler_deallocate.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="asio_handler_invoke/overload1.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.asio_handler_invoke"></a><a class="link" href="asio_handler_invoke.html" title="asio_handler_invoke">asio_handler_invoke</a>
</h3></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.asio_handler_invoke"></a>
(Deprecated: Use
the <a class="link" href="associated_executor.html" title="associated_executor"><code class="computeroutput">associated_executor</code></a>
trait.) Default invoke function for handlers.
</p>
<p>
Default handler invocation hook used for non-const function objects.
</p>
<pre class="programlisting">template&lt;
typename Function&gt;
asio_handler_invoke_is_deprecated <a class="link" href="asio_handler_invoke/overload1.html" title="asio_handler_invoke (1 of 2 overloads)">asio_handler_invoke</a>(
Function &amp; function,
... );
<span class="emphasis"><em>» <a class="link" href="asio_handler_invoke/overload1.html" title="asio_handler_invoke (1 of 2 overloads)">more...</a></em></span>
</pre>
<p>
Default handler invocation hook used for const function objects.
</p>
<pre class="programlisting">template&lt;
typename Function&gt;
asio_handler_invoke_is_deprecated <a class="link" href="asio_handler_invoke/overload2.html" title="asio_handler_invoke (2 of 2 overloads)">asio_handler_invoke</a>(
const Function &amp; function,
... );
<span class="emphasis"><em>» <a class="link" href="asio_handler_invoke/overload2.html" title="asio_handler_invoke (2 of 2 overloads)">more...</a></em></span>
</pre>
<p>
Completion handlers for asynchronous operations are invoked by the <a class="link" href="io_context.html" title="io_context"><code class="computeroutput">io_context</code></a>
associated with the corresponding object (e.g. a socket or deadline_timer).
Certain guarantees are made on when the handler may be invoked, in particular
that a handler can only be invoked from a thread that is currently calling
<code class="computeroutput">run()</code> on the corresponding <a class="link" href="io_context.html" title="io_context"><code class="computeroutput">io_context</code></a>
object. Handlers may subsequently be invoked through other objects (such
as <a class="link" href="io_context__strand.html" title="io_context::strand"><code class="computeroutput">io_context::strand</code></a>
objects) that provide additional guarantees.
</p>
<p>
When asynchronous operations are composed from other asynchronous operations,
all intermediate handlers should be invoked using the same method as the
final handler. This is required to ensure that user-defined objects are not
accessed in a way that may violate the guarantees. This hooking function
ensures that the invoked method used for the final handler is accessible
at each intermediate step.
</p>
<p>
Implement asio_handler_invoke for your own handlers to specify a custom invocation
strategy.
</p>
<p>
This default implementation invokes the function object like so:
</p>
<pre class="programlisting">function();
</pre>
<p>
If necessary, the default implementation makes a copy of the function object
so that the non-const operator() can be used.
</p>
<h5>
<a name="boost_asio.reference.asio_handler_invoke.h0"></a>
<span class="phrase"><a name="boost_asio.reference.asio_handler_invoke.example"></a></span><a class="link" href="asio_handler_invoke.html#boost_asio.reference.asio_handler_invoke.example">Example</a>
</h5>
<pre class="programlisting">class my_handler;
template &lt;typename Function&gt;
void asio_handler_invoke(Function function, my_handler* context)
{
context-&gt;strand_.dispatch(function);
}
</pre>
<h5>
<a name="boost_asio.reference.asio_handler_invoke.h1"></a>
<span class="phrase"><a name="boost_asio.reference.asio_handler_invoke.requirements"></a></span><a class="link" href="asio_handler_invoke.html#boost_asio.reference.asio_handler_invoke.requirements">Requirements</a>
</h5>
<p>
<span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/handler_invoke_hook.hpp</code>
</p>
<p>
<span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="asio_handler_deallocate.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="asio_handler_invoke/overload1.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,54 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>asio_handler_invoke (1 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../asio_handler_invoke.html" title="asio_handler_invoke">
<link rel="prev" href="../asio_handler_invoke.html" title="asio_handler_invoke">
<link rel="next" href="overload2.html" title="asio_handler_invoke (2 of 2 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../asio_handler_invoke.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../asio_handler_invoke.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="overload2.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.asio_handler_invoke.overload1"></a><a class="link" href="overload1.html" title="asio_handler_invoke (1 of 2 overloads)">asio_handler_invoke
(1 of 2 overloads)</a>
</h4></div></div></div>
<p>
Default handler invocation hook used for non-const function objects.
</p>
<pre class="programlisting">template&lt;
typename Function&gt;
asio_handler_invoke_is_deprecated asio_handler_invoke(
Function &amp; function,
... );
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../asio_handler_invoke.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../asio_handler_invoke.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="overload2.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,54 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>asio_handler_invoke (2 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../asio_handler_invoke.html" title="asio_handler_invoke">
<link rel="prev" href="overload1.html" title="asio_handler_invoke (1 of 2 overloads)">
<link rel="next" href="../asio_handler_is_continuation.html" title="asio_handler_is_continuation">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../asio_handler_invoke.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="../asio_handler_is_continuation.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.asio_handler_invoke.overload2"></a><a class="link" href="overload2.html" title="asio_handler_invoke (2 of 2 overloads)">asio_handler_invoke
(2 of 2 overloads)</a>
</h4></div></div></div>
<p>
Default handler invocation hook used for const function objects.
</p>
<pre class="programlisting">template&lt;
typename Function&gt;
asio_handler_invoke_is_deprecated asio_handler_invoke(
const Function &amp; function,
... );
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../asio_handler_invoke.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="../asio_handler_is_continuation.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,85 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>asio_handler_is_continuation</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="asio_handler_invoke/overload2.html" title="asio_handler_invoke (2 of 2 overloads)">
<link rel="next" href="associated_allocator.html" title="associated_allocator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="asio_handler_invoke/overload2.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="associated_allocator.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.asio_handler_is_continuation"></a><a class="link" href="asio_handler_is_continuation.html" title="asio_handler_is_continuation">asio_handler_is_continuation</a>
</h3></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.asio_handler_is_continuation"></a>
Default
continuation function for handlers.
</p>
<pre class="programlisting">bool asio_handler_is_continuation(
... );
</pre>
<p>
Asynchronous operations may represent a continuation of the asynchronous
control flow associated with the current handler. The implementation can
use this knowledge to optimise scheduling of the handler.
</p>
<p>
Implement asio_handler_is_continuation for your own handlers to indicate
when a handler represents a continuation.
</p>
<p>
The default implementation of the continuation hook returns <code class="computeroutput">false</code>.
</p>
<h5>
<a name="boost_asio.reference.asio_handler_is_continuation.h0"></a>
<span class="phrase"><a name="boost_asio.reference.asio_handler_is_continuation.example"></a></span><a class="link" href="asio_handler_is_continuation.html#boost_asio.reference.asio_handler_is_continuation.example">Example</a>
</h5>
<pre class="programlisting">class my_handler;
bool asio_handler_is_continuation(my_handler* context)
{
return true;
}
</pre>
<h5>
<a name="boost_asio.reference.asio_handler_is_continuation.h1"></a>
<span class="phrase"><a name="boost_asio.reference.asio_handler_is_continuation.requirements"></a></span><a class="link" href="asio_handler_is_continuation.html#boost_asio.reference.asio_handler_is_continuation.requirements">Requirements</a>
</h5>
<p>
<span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/handler_continuation_hook.hpp</code>
</p>
<p>
<span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="asio_handler_invoke/overload2.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="associated_allocator.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,160 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>associated_allocator</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="asio_handler_is_continuation.html" title="asio_handler_is_continuation">
<link rel="next" href="associated_allocator/get.html" title="associated_allocator::get">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="asio_handler_is_continuation.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="associated_allocator/get.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.associated_allocator"></a><a class="link" href="associated_allocator.html" title="associated_allocator">associated_allocator</a>
</h3></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.associated_allocator"></a>
</p>
<p>
Traits type used to obtain the allocator associated with an object.
</p>
<pre class="programlisting">template&lt;
typename T,
typename Allocator = std::allocator&lt;void&gt;&gt;
struct associated_allocator
</pre>
<h5>
<a name="boost_asio.reference.associated_allocator.h0"></a>
<span class="phrase"><a name="boost_asio.reference.associated_allocator.types"></a></span><a class="link" href="associated_allocator.html#boost_asio.reference.associated_allocator.types">Types</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Name
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<a class="link" href="associated_allocator/type.html" title="associated_allocator::type"><span class="bold"><strong>type</strong></span></a>
</p>
</td>
<td>
<p>
If T has a nested type allocator_type, T::allocator_type. Otherwise
Allocator.
</p>
</td>
</tr></tbody>
</table></div>
<h5>
<a name="boost_asio.reference.associated_allocator.h1"></a>
<span class="phrase"><a name="boost_asio.reference.associated_allocator.member_functions"></a></span><a class="link" href="associated_allocator.html#boost_asio.reference.associated_allocator.member_functions">Member
Functions</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Name
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<a class="link" href="associated_allocator/get.html" title="associated_allocator::get"><span class="bold"><strong>get</strong></span></a> <span class="silver">[static]</span>
</p>
</td>
<td>
<p>
If T has a nested type allocator_type, returns t.get_allocator().
Otherwise returns a.
</p>
</td>
</tr></tbody>
</table></div>
<p>
A program may specialise this traits type if the <code class="computeroutput">T</code> template
parameter in the specialisation is a user-defined type. The template parameter
<code class="computeroutput">Allocator</code> shall be a type meeting the Allocator requirements.
</p>
<p>
Specialisations shall meet the following requirements, where <code class="computeroutput">t</code>
is a const reference to an object of type <code class="computeroutput">T</code>, and <code class="computeroutput">a</code>
is an object of type <code class="computeroutput">Allocator</code>.
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Provide a nested typedef <code class="computeroutput">type</code> that identifies a type meeting
the Allocator requirements.
</li>
<li class="listitem">
Provide a noexcept static member function named <code class="computeroutput">get</code>, callable
as <code class="computeroutput">get(t)</code> and with return type <code class="computeroutput">type</code>.
</li>
<li class="listitem">
Provide a noexcept static member function named <code class="computeroutput">get</code>, callable
as <code class="computeroutput">get(t,a)</code> and with return type <code class="computeroutput">type</code>.
</li>
</ul></div>
<h5>
<a name="boost_asio.reference.associated_allocator.h2"></a>
<span class="phrase"><a name="boost_asio.reference.associated_allocator.requirements"></a></span><a class="link" href="associated_allocator.html#boost_asio.reference.associated_allocator.requirements">Requirements</a>
</h5>
<p>
<span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/associated_allocator.hpp</code>
</p>
<p>
<span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="asio_handler_is_continuation.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="associated_allocator/get.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,54 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>associated_allocator::get</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../associated_allocator.html" title="associated_allocator">
<link rel="prev" href="../associated_allocator.html" title="associated_allocator">
<link rel="next" href="type.html" title="associated_allocator::type">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../associated_allocator.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../associated_allocator.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="type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.associated_allocator.get"></a><a class="link" href="get.html" title="associated_allocator::get">associated_allocator::get</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.associated_allocator.get"></a>
If
<code class="computeroutput">T</code> has a nested type <code class="computeroutput">allocator_type</code>, returns
<code class="computeroutput">t.get_allocator()</code>. Otherwise returns <code class="computeroutput">a</code>.
</p>
<pre class="programlisting">static type get(
const T &amp; t,
const Allocator &amp; a = Allocator());
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../associated_allocator.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../associated_allocator.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="type.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,62 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>associated_allocator::type</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../associated_allocator.html" title="associated_allocator">
<link rel="prev" href="get.html" title="associated_allocator::get">
<link rel="next" href="../associated_executor.html" title="associated_executor">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="get.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../associated_allocator.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="../associated_executor.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.associated_allocator.type"></a><a class="link" href="type.html" title="associated_allocator::type">associated_allocator::type</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.associated_allocator.type"></a>
If
<code class="computeroutput">T</code> has a nested type <code class="computeroutput">allocator_type</code>, <code class="computeroutput">T::allocator_type</code>.
Otherwise <code class="computeroutput">Allocator</code>.
</p>
<pre class="programlisting">typedef see_below type;
</pre>
<h6>
<a name="boost_asio.reference.associated_allocator.type.h0"></a>
<span class="phrase"><a name="boost_asio.reference.associated_allocator.type.requirements"></a></span><a class="link" href="type.html#boost_asio.reference.associated_allocator.type.requirements">Requirements</a>
</h6>
<p>
<span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/associated_allocator.hpp</code>
</p>
<p>
<span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="get.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../associated_allocator.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="../associated_executor.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,160 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>associated_executor</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="associated_allocator/type.html" title="associated_allocator::type">
<link rel="next" href="associated_executor/get.html" title="associated_executor::get">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="associated_allocator/type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="associated_executor/get.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.associated_executor"></a><a class="link" href="associated_executor.html" title="associated_executor">associated_executor</a>
</h3></div></div></div>
<p>
<a class="indexterm" name="boost_asio.indexterm.associated_executor"></a>
</p>
<p>
Traits type used to obtain the executor associated with an object.
</p>
<pre class="programlisting">template&lt;
typename T,
typename <a class="link" href="Executor1.html" title="Executor requirements">Executor</a> = system_executor&gt;
struct associated_executor
</pre>
<h5>
<a name="boost_asio.reference.associated_executor.h0"></a>
<span class="phrase"><a name="boost_asio.reference.associated_executor.types"></a></span><a class="link" href="associated_executor.html#boost_asio.reference.associated_executor.types">Types</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Name
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<a class="link" href="associated_executor/type.html" title="associated_executor::type"><span class="bold"><strong>type</strong></span></a>
</p>
</td>
<td>
<p>
If T has a nested type executor_type, T::executor_type. Otherwise
Executor.
</p>
</td>
</tr></tbody>
</table></div>
<h5>
<a name="boost_asio.reference.associated_executor.h1"></a>
<span class="phrase"><a name="boost_asio.reference.associated_executor.member_functions"></a></span><a class="link" href="associated_executor.html#boost_asio.reference.associated_executor.member_functions">Member
Functions</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Name
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<a class="link" href="associated_executor/get.html" title="associated_executor::get"><span class="bold"><strong>get</strong></span></a> <span class="silver">[static]</span>
</p>
</td>
<td>
<p>
If T has a nested type executor_type, returns t.get_executor().
Otherwise returns ex.
</p>
</td>
</tr></tbody>
</table></div>
<p>
A program may specialise this traits type if the <code class="computeroutput">T</code> template
parameter in the specialisation is a user-defined type. The template parameter
<code class="computeroutput">Executor</code> shall be a type meeting the Executor requirements.
</p>
<p>
Specialisations shall meet the following requirements, where <code class="computeroutput">t</code>
is a const reference to an object of type <code class="computeroutput">T</code>, and <code class="computeroutput">e</code>
is an object of type <code class="computeroutput">Executor</code>.
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Provide a nested typedef <code class="computeroutput">type</code> that identifies a type meeting
the Executor requirements.
</li>
<li class="listitem">
Provide a noexcept static member function named <code class="computeroutput">get</code>, callable
as <code class="computeroutput">get(t)</code> and with return type <code class="computeroutput">type</code>.
</li>
<li class="listitem">
Provide a noexcept static member function named <code class="computeroutput">get</code>, callable
as <code class="computeroutput">get(t,e)</code> and with return type <code class="computeroutput">type</code>.
</li>
</ul></div>
<h5>
<a name="boost_asio.reference.associated_executor.h2"></a>
<span class="phrase"><a name="boost_asio.reference.associated_executor.requirements"></a></span><a class="link" href="associated_executor.html#boost_asio.reference.associated_executor.requirements">Requirements</a>
</h5>
<p>
<span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/associated_executor.hpp</code>
</p>
<p>
<span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2003-2021 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="associated_allocator/type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="associated_executor/get.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More