2021-10-05 21:37:46 +02:00

158 lines
6.8 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>