1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>posix::basic_descriptor</title> 5<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../../boost_asio.html" title="Boost.Asio"> 8<link rel="up" href="../reference.html" title="Reference"> 9<link rel="prev" href="placeholders__signal_number.html" title="placeholders::signal_number"> 10<link rel="next" href="posix__basic_descriptor/assign.html" title="posix::basic_descriptor::assign"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> 15<td align="center"><a href="../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="placeholders__signal_number.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="posix__basic_descriptor/assign.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h3 class="title"> 27<a name="boost_asio.reference.posix__basic_descriptor"></a><a class="link" href="posix__basic_descriptor.html" title="posix::basic_descriptor">posix::basic_descriptor</a> 28</h3></div></div></div> 29<p> 30 Provides POSIX descriptor functionality. 31 </p> 32<pre class="programlisting">template< 33 typename <a class="link" href="Executor1.html" title="Executor requirements">Executor</a> = any_io_executor> 34class basic_descriptor : 35 public posix::descriptor_base 36</pre> 37<h5> 38<a name="boost_asio.reference.posix__basic_descriptor.h0"></a> 39 <span class="phrase"><a name="boost_asio.reference.posix__basic_descriptor.types"></a></span><a class="link" href="posix__basic_descriptor.html#boost_asio.reference.posix__basic_descriptor.types">Types</a> 40 </h5> 41<div class="informaltable"><table class="table"> 42<colgroup> 43<col> 44<col> 45</colgroup> 46<thead><tr> 47<th> 48 <p> 49 Name 50 </p> 51 </th> 52<th> 53 <p> 54 Description 55 </p> 56 </th> 57</tr></thead> 58<tbody> 59<tr> 60<td> 61 <p> 62 <a class="link" href="posix__basic_descriptor__rebind_executor.html" title="posix::basic_descriptor::rebind_executor"><span class="bold"><strong>rebind_executor</strong></span></a> 63 </p> 64 </td> 65<td> 66 <p> 67 Rebinds the descriptor type to another executor. 68 </p> 69 </td> 70</tr> 71<tr> 72<td> 73 <p> 74 <a class="link" href="posix__basic_descriptor/bytes_readable.html" title="posix::basic_descriptor::bytes_readable"><span class="bold"><strong>bytes_readable</strong></span></a> 75 </p> 76 </td> 77<td> 78 <p> 79 IO control command to get the amount of data that can be read without 80 blocking. 81 </p> 82 </td> 83</tr> 84<tr> 85<td> 86 <p> 87 <a class="link" href="posix__basic_descriptor/executor_type.html" title="posix::basic_descriptor::executor_type"><span class="bold"><strong>executor_type</strong></span></a> 88 </p> 89 </td> 90<td> 91 <p> 92 The type of the executor associated with the object. 93 </p> 94 </td> 95</tr> 96<tr> 97<td> 98 <p> 99 <a class="link" href="posix__basic_descriptor/lowest_layer_type.html" title="posix::basic_descriptor::lowest_layer_type"><span class="bold"><strong>lowest_layer_type</strong></span></a> 100 </p> 101 </td> 102<td> 103 <p> 104 A descriptor is always the lowest layer. 105 </p> 106 </td> 107</tr> 108<tr> 109<td> 110 <p> 111 <a class="link" href="posix__basic_descriptor/native_handle_type.html" title="posix::basic_descriptor::native_handle_type"><span class="bold"><strong>native_handle_type</strong></span></a> 112 </p> 113 </td> 114<td> 115 <p> 116 The native representation of a descriptor. 117 </p> 118 </td> 119</tr> 120<tr> 121<td> 122 <p> 123 <a class="link" href="posix__basic_descriptor/wait_type.html" title="posix::basic_descriptor::wait_type"><span class="bold"><strong>wait_type</strong></span></a> 124 </p> 125 </td> 126<td> 127 <p> 128 Wait types. 129 </p> 130 </td> 131</tr> 132</tbody> 133</table></div> 134<h5> 135<a name="boost_asio.reference.posix__basic_descriptor.h1"></a> 136 <span class="phrase"><a name="boost_asio.reference.posix__basic_descriptor.member_functions"></a></span><a class="link" href="posix__basic_descriptor.html#boost_asio.reference.posix__basic_descriptor.member_functions">Member 137 Functions</a> 138 </h5> 139<div class="informaltable"><table class="table"> 140<colgroup> 141<col> 142<col> 143</colgroup> 144<thead><tr> 145<th> 146 <p> 147 Name 148 </p> 149 </th> 150<th> 151 <p> 152 Description 153 </p> 154 </th> 155</tr></thead> 156<tbody> 157<tr> 158<td> 159 <p> 160 <a class="link" href="posix__basic_descriptor/assign.html" title="posix::basic_descriptor::assign"><span class="bold"><strong>assign</strong></span></a> 161 </p> 162 </td> 163<td> 164 <p> 165 Assign an existing native descriptor to the descriptor. 166 </p> 167 </td> 168</tr> 169<tr> 170<td> 171 <p> 172 <a class="link" href="posix__basic_descriptor/async_wait.html" title="posix::basic_descriptor::async_wait"><span class="bold"><strong>async_wait</strong></span></a> 173 </p> 174 </td> 175<td> 176 <p> 177 Asynchronously wait for the descriptor to become ready to read, 178 ready to write, or to have pending error conditions. 179 </p> 180 </td> 181</tr> 182<tr> 183<td> 184 <p> 185 <a class="link" href="posix__basic_descriptor/basic_descriptor.html" title="posix::basic_descriptor::basic_descriptor"><span class="bold"><strong>basic_descriptor</strong></span></a> <span class="silver">[constructor]</span> 186 </p> 187 </td> 188<td> 189 <p> 190 Construct a descriptor without opening it. <br> <span class="silver"> —</span><br> Construct 191 a descriptor on an existing native descriptor. <br> <span class="silver"> —</span><br> Move-construct 192 a descriptor from another. 193 </p> 194 </td> 195</tr> 196<tr> 197<td> 198 <p> 199 <a class="link" href="posix__basic_descriptor/cancel.html" title="posix::basic_descriptor::cancel"><span class="bold"><strong>cancel</strong></span></a> 200 </p> 201 </td> 202<td> 203 <p> 204 Cancel all asynchronous operations associated with the descriptor. 205 </p> 206 </td> 207</tr> 208<tr> 209<td> 210 <p> 211 <a class="link" href="posix__basic_descriptor/close.html" title="posix::basic_descriptor::close"><span class="bold"><strong>close</strong></span></a> 212 </p> 213 </td> 214<td> 215 <p> 216 Close the descriptor. 217 </p> 218 </td> 219</tr> 220<tr> 221<td> 222 <p> 223 <a class="link" href="posix__basic_descriptor/get_executor.html" title="posix::basic_descriptor::get_executor"><span class="bold"><strong>get_executor</strong></span></a> 224 </p> 225 </td> 226<td> 227 <p> 228 Get the executor associated with the object. 229 </p> 230 </td> 231</tr> 232<tr> 233<td> 234 <p> 235 <a class="link" href="posix__basic_descriptor/io_control.html" title="posix::basic_descriptor::io_control"><span class="bold"><strong>io_control</strong></span></a> 236 </p> 237 </td> 238<td> 239 <p> 240 Perform an IO control command on the descriptor. 241 </p> 242 </td> 243</tr> 244<tr> 245<td> 246 <p> 247 <a class="link" href="posix__basic_descriptor/is_open.html" title="posix::basic_descriptor::is_open"><span class="bold"><strong>is_open</strong></span></a> 248 </p> 249 </td> 250<td> 251 <p> 252 Determine whether the descriptor is open. 253 </p> 254 </td> 255</tr> 256<tr> 257<td> 258 <p> 259 <a class="link" href="posix__basic_descriptor/lowest_layer.html" title="posix::basic_descriptor::lowest_layer"><span class="bold"><strong>lowest_layer</strong></span></a> 260 </p> 261 </td> 262<td> 263 <p> 264 Get a reference to the lowest layer. <br> <span class="silver"> —</span><br> Get a const 265 reference to the lowest layer. 266 </p> 267 </td> 268</tr> 269<tr> 270<td> 271 <p> 272 <a class="link" href="posix__basic_descriptor/native_handle.html" title="posix::basic_descriptor::native_handle"><span class="bold"><strong>native_handle</strong></span></a> 273 </p> 274 </td> 275<td> 276 <p> 277 Get the native descriptor representation. 278 </p> 279 </td> 280</tr> 281<tr> 282<td> 283 <p> 284 <a class="link" href="posix__basic_descriptor/native_non_blocking.html" title="posix::basic_descriptor::native_non_blocking"><span class="bold"><strong>native_non_blocking</strong></span></a> 285 </p> 286 </td> 287<td> 288 <p> 289 Gets the non-blocking mode of the native descriptor implementation. 290 <br> <span class="silver"> —</span><br> Sets the non-blocking mode of the native descriptor 291 implementation. 292 </p> 293 </td> 294</tr> 295<tr> 296<td> 297 <p> 298 <a class="link" href="posix__basic_descriptor/non_blocking.html" title="posix::basic_descriptor::non_blocking"><span class="bold"><strong>non_blocking</strong></span></a> 299 </p> 300 </td> 301<td> 302 <p> 303 Gets the non-blocking mode of the descriptor. <br> <span class="silver"> —</span><br> Sets 304 the non-blocking mode of the descriptor. 305 </p> 306 </td> 307</tr> 308<tr> 309<td> 310 <p> 311 <a class="link" href="posix__basic_descriptor/operator_eq_.html" title="posix::basic_descriptor::operator="><span class="bold"><strong>operator=</strong></span></a> 312 </p> 313 </td> 314<td> 315 <p> 316 Move-assign a descriptor from another. 317 </p> 318 </td> 319</tr> 320<tr> 321<td> 322 <p> 323 <a class="link" href="posix__basic_descriptor/release.html" title="posix::basic_descriptor::release"><span class="bold"><strong>release</strong></span></a> 324 </p> 325 </td> 326<td> 327 <p> 328 Release ownership of the native descriptor implementation. 329 </p> 330 </td> 331</tr> 332<tr> 333<td> 334 <p> 335 <a class="link" href="posix__basic_descriptor/wait.html" title="posix::basic_descriptor::wait"><span class="bold"><strong>wait</strong></span></a> 336 </p> 337 </td> 338<td> 339 <p> 340 Wait for the descriptor to become ready to read, ready to write, 341 or to have pending error conditions. 342 </p> 343 </td> 344</tr> 345</tbody> 346</table></div> 347<h5> 348<a name="boost_asio.reference.posix__basic_descriptor.h2"></a> 349 <span class="phrase"><a name="boost_asio.reference.posix__basic_descriptor.protected_member_functions"></a></span><a class="link" href="posix__basic_descriptor.html#boost_asio.reference.posix__basic_descriptor.protected_member_functions">Protected 350 Member Functions</a> 351 </h5> 352<div class="informaltable"><table class="table"> 353<colgroup> 354<col> 355<col> 356</colgroup> 357<thead><tr> 358<th> 359 <p> 360 Name 361 </p> 362 </th> 363<th> 364 <p> 365 Description 366 </p> 367 </th> 368</tr></thead> 369<tbody><tr> 370<td> 371 <p> 372 <a class="link" href="posix__basic_descriptor/_basic_descriptor.html" title="posix::basic_descriptor::~basic_descriptor"><span class="bold"><strong>~basic_descriptor</strong></span></a> <span class="silver">[destructor]</span> 373 </p> 374 </td> 375<td> 376 <p> 377 Protected destructor to prevent deletion through this type. 378 </p> 379 </td> 380</tr></tbody> 381</table></div> 382<p> 383 The <a class="link" href="posix__basic_descriptor.html" title="posix::basic_descriptor"><code class="computeroutput">posix::basic_descriptor</code></a> 384 class template provides the ability to wrap a POSIX descriptor. 385 </p> 386<h5> 387<a name="boost_asio.reference.posix__basic_descriptor.h3"></a> 388 <span class="phrase"><a name="boost_asio.reference.posix__basic_descriptor.thread_safety"></a></span><a class="link" href="posix__basic_descriptor.html#boost_asio.reference.posix__basic_descriptor.thread_safety">Thread 389 Safety</a> 390 </h5> 391<p> 392 <span class="emphasis"><em>Distinct</em></span> <span class="emphasis"><em>objects:</em></span> Safe. 393 </p> 394<p> 395 <span class="emphasis"><em>Shared</em></span> <span class="emphasis"><em>objects:</em></span> Unsafe. 396 </p> 397<h5> 398<a name="boost_asio.reference.posix__basic_descriptor.h4"></a> 399 <span class="phrase"><a name="boost_asio.reference.posix__basic_descriptor.requirements"></a></span><a class="link" href="posix__basic_descriptor.html#boost_asio.reference.posix__basic_descriptor.requirements">Requirements</a> 400 </h5> 401<p> 402 <span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/posix/basic_descriptor.hpp</code> 403 </p> 404<p> 405 <span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code> 406 </p> 407</div> 408<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 409<td align="left"></td> 410<td align="right"><div class="copyright-footer">Copyright © 2003-2020 Christopher M. 411 Kohlhoff<p> 412 Distributed under the Boost Software License, Version 1.0. (See accompanying 413 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>) 414 </p> 415</div></td> 416</tr></table> 417<hr> 418<div class="spirit-nav"> 419<a accesskey="p" href="placeholders__signal_number.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="posix__basic_descriptor/assign.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> 420</div> 421</body> 422</html> 423