summaryrefslogtreecommitdiff
path: root/doc/html/boost_asio/reference/AsyncReadStream.html
blob: 513369cc77e2d8b4176db39fdd0e884d443c6c57 (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
<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="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<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/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="AsyncWriteStream.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.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="boost_asio.reference.AsyncReadStream.t0"></a><p class="title"><b>Table&#160;3.&#160;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">get_io_service</span><span class="special">();</span></code>
                </p>
              </td>
<td>
                <p>
                  <code class="computeroutput"><span class="identifier">io_service</span><span class="special">&amp;</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">get_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> &#8212; the last copy
                  of <code class="computeroutput"><span class="identifier">mb</span></code> is destroyed,
                  or<br> <br> &#8212; 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 &#169; 2003-2012 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/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="AsyncWriteStream.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>