<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>read (5 of 6 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="../read.html" title="read">
<link rel="prev" href="overload4.html" title="read (4 of 6 overloads)">
<link rel="next" href="overload6.html" title="read (6 of 6 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="overload4.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="overload6.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.read.overload5"></a><a class="link" href="overload5.html" title="read (5 of 6 overloads)">read (5 of 6 overloads)</a>
</h4></div></div></div>
<p>
          Attempt to read a certain amount of data from a stream before returning.
        </p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
    <span class="keyword">typename</span> <a class="link" href="../SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a><span class="special">,</span>
    <span class="keyword">typename</span> <span class="identifier">Allocator</span><span class="special">,</span>
    <span class="keyword">typename</span> <span class="identifier">CompletionCondition</span><span class="special">&gt;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">read</span><span class="special">(</span>
    <span class="identifier">SyncReadStream</span> <span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span>
    <span class="identifier">basic_streambuf</span><span class="special">&lt;</span> <span class="identifier">Allocator</span> <span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">b</span><span class="special">,</span>
    <span class="identifier">CompletionCondition</span> <span class="identifier">completion_condition</span><span class="special">);</span>
</pre>
<p>
          This function is used to read a certain number of bytes of data from a
          stream. The call will block until one of the following conditions is true:
        </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
              The completion_condition function object returns 0.
            </li></ul></div>
<p>
          This operation is implemented in terms of zero or more calls to the stream's
          read_some function.
        </p>
<a name="boost_asio.reference.read.overload5.parameters"></a><h6>
<a name="id1288318"></a>
          <a class="link" href="overload5.html#boost_asio.reference.read.overload5.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 SyncReadStream concept.
              </p></dd>
<dt><span class="term">b</span></dt>
<dd><p>
                The <a class="link" href="../basic_streambuf.html" title="basic_streambuf"><code class="computeroutput"><span class="identifier">basic_streambuf</span></code></a> object into
                which the data will be read.
              </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 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 read_some function.
              </p>
</dd>
</dl>
</div>
<a name="boost_asio.reference.read.overload5.return_value"></a><h6>
<a name="id1288521"></a>
          <a class="link" href="overload5.html#boost_asio.reference.read.overload5.return_value">Return
          Value</a>
        </h6>
<p>
          The number of bytes transferred.
        </p>
<a name="boost_asio.reference.read.overload5.exceptions"></a><h6>
<a name="id1288548"></a>
          <a class="link" href="overload5.html#boost_asio.reference.read.overload5.exceptions">Exceptions</a>
        </h6>
<div class="variablelist">
<p class="title"><b></b></p>
<dl>
<dt><span class="term">boost::system::system_error</span></dt>
<dd><p>
                Thrown on failure.
              </p></dd>
</dl>
</div>
</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="overload4.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../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="overload6.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
