Handler.html
6.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Handlers</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="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="asio C++ library" width="250" height="60" src="../../asio.png"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="GettableSocketOption.html"><img src="../../prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../home.png" alt="Home"></a><a accesskey="n" href="HandshakeHandler.html"><img src="../../next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="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="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 asio::asio_handler_allocate;
asio_handler_allocate(s, &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">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 asio::asio_handler_deallocate;
asio_handler_deallocate(p, s, &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">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 asio::asio_handler_invoke;
asio_handler_invoke(f, &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">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-2020 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="../../prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../home.png" alt="Home"></a><a accesskey="n" href="HandshakeHandler.html"><img src="../../next.png" alt="Next"></a>
</div>
</body>
</html>