summaryrefslogtreecommitdiff
path: root/doc/html/boost_asio/reference/Handler.html
blob: bccfbb65f944841878d9b21c4ac73e65e05b6445 (plain)
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
151
152
153
154
155
156
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<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&#160;17.&#160;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 &#169; 2003-2018 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>