<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>async_read (2 of 4 overloads)</title>
<link rel="stylesheet" href="../../../../../doc/src/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="../async_read.html" title="async_read">
<link rel="prev" href="overload1.html" title="async_read (1 of 4 overloads)">
<link rel="next" href="overload3.html" title="async_read (3 of 4 overloads)">
</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="overload1.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../async_read.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="overload3.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.async_read.overload2"></a><a class="link" href="overload2.html" title="async_read (2 of 4 overloads)">async_read
        (2 of 4 overloads)</a>
</h4></div></div></div>
<p>
          Start an asynchronous operation to read a certain amount of data from a
          stream.
        </p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
    <span class="keyword">typename</span> <a class="link" href="../AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a><span class="special">,</span>
    <span class="keyword">typename</span> <a class="link" href="../MutableBufferSequence.html" title="Mutable buffer sequence requirements">MutableBufferSequence</a><span class="special">,</span>
    <span class="keyword">typename</span> <span class="identifier">CompletionCondition</span><span class="special">,</span>
    <span class="keyword">typename</span> <a class="link" href="../ReadHandler.html" title="Read handler requirements">ReadHandler</a><span class="special">&gt;</span>
<span class="keyword">void</span> <span class="identifier">async_read</span><span class="special">(</span>
    <span class="identifier">AsyncReadStream</span> <span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span>
    <span class="keyword">const</span> <span class="identifier">MutableBufferSequence</span> <span class="special">&amp;</span> <span class="identifier">buffers</span><span class="special">,</span>
    <span class="identifier">CompletionCondition</span> <span class="identifier">completion_condition</span><span class="special">,</span>
    <span class="identifier">ReadHandler</span> <span class="identifier">handler</span><span class="special">);</span>
</pre>
<p>
          This function is used to asynchronously read a certain number of bytes
          of data from a stream. The function call always returns immediately. The
          asynchronous operation will continue until one of the following conditions
          is true:
        </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
              The supplied buffers are full. That is, the bytes transferred is equal
              to the sum of the buffer sizes.
            </li>
<li class="listitem">
              The completion_condition function object returns 0.
            </li>
</ul></div>
<a name="boost_asio.reference.async_read.overload2.parameters"></a><h6>
<a name="id871678"></a>
          <a class="link" href="overload2.html#boost_asio.reference.async_read.overload2.parameters">Parameters</a>
        </h6>
<div class="variablelist">
<p class="title"><b></b></p>
<dl>
<dt><span class="term">s</span></dt>
<dd><p>
                The stream from which the data is to be read. The type must support
                the AsyncReadStream concept.
              </p></dd>
<dt><span class="term">buffers</span></dt>
<dd><p>
                One or more buffers into which the data will be read. The sum of
                the buffer sizes indicates the maximum number of bytes to read from
                the stream. Although the buffers object may be copied as necessary,
                ownership of the underlying memory blocks is retained by the caller,
                which must guarantee that they remain valid until the handler is
                called.
              </p></dd>
<dt><span class="term">completion_condition</span></dt>
<dd>
<p>
                The function object to be called to determine whether the read operation
                is complete. The signature of the function object must be: 
</p>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">completion_condition</span><span class="special">(</span>
  <span class="comment">// Result of latest async_read_some operation.
</span>  <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">error</span><span class="special">,</span>

  <span class="comment">// Number of bytes transferred so far.
</span>  <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">bytes_transferred</span>
<span class="special">);</span> 
</pre>
<p>
                A return value of 0 indicates that the read operation is complete.
                A non-zero return value indicates the maximum number of bytes to
                be read on the next call to the stream's async_read_some function.
              </p>
</dd>
<dt><span class="term">handler</span></dt>
<dd>
<p>
                The handler to be called when the read operation completes. Copies
                will be made of the handler as required. The function signature of
                the handler must be: 
</p>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">handler</span><span class="special">(</span>
  <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">error</span><span class="special">,</span> <span class="comment">// Result of operation.
</span>
  <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">bytes_transferred</span>           <span class="comment">// Number of bytes copied into the
</span>                                          <span class="comment">// buffers. If an error occurred,
</span>                                          <span class="comment">// this will be the  number of
</span>                                          <span class="comment">// bytes successfully transferred
</span>                                          <span class="comment">// prior to the error.
</span><span class="special">);</span> 
</pre>
<p>
                Regardless of whether the asynchronous operation completes immediately
                or not, the handler will not be invoked from within this function.
                Invocation of the handler will be performed in a manner equivalent
                to using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_service</span><span class="special">::</span><span class="identifier">post</span><span class="special">()</span></code>.
              </p>
</dd>
</dl>
</div>
<a name="boost_asio.reference.async_read.overload2.example"></a><h6>
<a name="id872061"></a>
          <a class="link" href="overload2.html#boost_asio.reference.async_read.overload2.example">Example</a>
        </h6>
<p>
          To read into a single data buffer use the <a class="link" href="../buffer.html" title="buffer"><code class="computeroutput"><span class="identifier">buffer</span></code></a> function as follows:
        </p>
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">async_read</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>
    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span><span class="special">(</span><span class="identifier">data</span><span class="special">,</span> <span class="identifier">size</span><span class="special">),</span>
    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">transfer_at_least</span><span class="special">(</span><span class="number">32</span><span class="special">),</span>
    <span class="identifier">handler</span><span class="special">);</span> 
</pre>
<p>
          See the <a class="link" href="../buffer.html" title="buffer"><code class="computeroutput"><span class="identifier">buffer</span></code></a>
          documentation for information on reading into multiple buffers in one go,
          and how to use it with arrays, boost::array or std::vector.
        </p>
</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 - 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="overload1.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../async_read.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="overload3.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
