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
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Buffer-oriented asynchronous read stream requirements</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../boost_asio.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="AsyncWriteStream.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" title="Buffer-oriented asynchronous read stream requirements">
<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>
In the table below, <code class="computeroutput"><span class="identifier">a</span></code> denotes
an asynchronous read stream object, <code class="computeroutput"><span class="identifier">mb</span></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"><span class="identifier">h</span></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="id615580"></a><p class="title"><b>Table 3. Buffer-oriented asynchronous read stream requirements</b></p>
<div class="table-contents"><table class="table" summary="Buffer-oriented asynchronous read stream 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"><span class="identifier">a</span><span class="special">.</span><span class="identifier">io_service</span><span class="special">();</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">io_service</span><span class="special">&</span></code>
</p>
</td>
<td>
<p>
Returns the <code class="computeroutput"><span class="identifier">io_service</span></code>
object through which the <code class="computeroutput"><span class="identifier">async_read_some</span></code>
handler <code class="computeroutput"><span class="identifier">h</span></code> will be invoked.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">async_read_some</span><span class="special">(</span><span class="identifier">mb</span><span class="special">,</span> <span class="identifier">h</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="keyword">void</span></code>
</p>
</td>
<td>
<p>
Initiates an asynchronous operation to read one or more bytes of data
from the stream <code class="computeroutput"><span class="identifier">a</span></code>.
The operation is performed via the <code class="computeroutput"><span class="identifier">io_service</span></code>
object <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">io_service</span><span class="special">()</span></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"><span class="identifier">mb</span></code> specifies memory
where the data should be placed. The <code class="computeroutput"><span class="identifier">async_read_some</span></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"><span class="identifier">mb</span></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"><span class="identifier">mb</span></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"><span class="identifier">mb</span></code>
is <code class="computeroutput"><span class="number">0</span></code>, the asynchronous
read operation shall complete immediately and pass <code class="computeroutput"><span class="number">0</span></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 - 2010 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/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../boost_asio.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="AsyncWriteStream.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
|