<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>async_read_until (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_until.html" title="async_read_until">
<link rel="prev" href="overload1.html" title="async_read_until (1 of 4 overloads)">
<link rel="next" href="overload3.html" title="async_read_until (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_until.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_until.overload2"></a><a class="link" href="overload2.html" title="async_read_until (2 of 4 overloads)">async_read_until
        (2 of 4 overloads)</a>
</h4></div></div></div>
<p>
          Start an asynchronous operation to read data into a streambuf until it
          contains a specified delimiter.
        </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> <span class="identifier">Allocator</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_until</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="identifier">boost</span><span class="special">::</span><span class="identifier">asio</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="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> <span class="identifier">delim</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 data into the specified streambuf
          until the streambuf's get area contains the specified delimiter. 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 get area of the streambuf contains the specified delimiter.
            </li>
<li class="listitem">
              An error occurred.
            </li>
</ul></div>
<p>
          This operation is implemented in terms of zero or more calls to the stream's
          async_read_some function, and is known as a <span class="bold"><strong>composed
          operation</strong></span>. If the streambuf's get area already contains the
          delimiter, this asynchronous operation completes immediately. The program
          must ensure that the stream performs no other read operations (such as
          async_read, async_read_until, the stream's async_read_some function, or
          any other composed operations that perform reads) until this operation
          completes.
        </p>
<a name="boost_asio.reference.async_read_until.overload2.parameters"></a><h6>
<a name="id879990"></a>
          <a class="link" href="overload2.html#boost_asio.reference.async_read_until.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">b</span></dt>
<dd><p>
                A streambuf object into which the data will be read. Ownership of
                the streambuf is retained by the caller, which must guarantee that
                it remains valid until the handler is called.
              </p></dd>
<dt><span class="term">delim</span></dt>
<dd><p>
                The delimiter string.
              </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="comment">// Result of 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">// The number of bytes in the streambuf's get
</span>  <span class="comment">// area up to and including the delimiter.
</span>  <span class="comment">// 0 if an error occurred.
</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>
                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_until.overload2.remarks"></a><h6>
<a name="id880240"></a>
          <a class="link" href="overload2.html#boost_asio.reference.async_read_until.overload2.remarks">Remarks</a>
        </h6>
<p>
          After a successful async_read_until operation, the streambuf may contain
          additional data beyond the delimiter. An application will typically leave
          that data in the streambuf for a subsequent async_read_until operation
          to examine.
        </p>
<a name="boost_asio.reference.async_read_until.overload2.example"></a><h6>
<a name="id880269"></a>
          <a class="link" href="overload2.html#boost_asio.reference.async_read_until.overload2.example">Example</a>
        </h6>
<p>
          To asynchronously read data into a streambuf until a newline is encountered:
        </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">streambuf</span> <span class="identifier">b</span><span class="special">;</span>
<span class="special">...</span>
<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">e</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">size</span><span class="special">)</span>
<span class="special">{</span>
  <span class="keyword">if</span> <span class="special">(!</span><span class="identifier">e</span><span class="special">)</span>
  <span class="special">{</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span> <span class="identifier">is</span><span class="special">(&amp;</span><span class="identifier">b</span><span class="special">);</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">line</span><span class="special">;</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">getline</span><span class="special">(</span><span class="identifier">is</span><span class="special">,</span> <span class="identifier">line</span><span class="special">);</span>
    <span class="special">...</span>
  <span class="special">}</span>
<span class="special">}</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">async_read_until</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">b</span><span class="special">,</span> <span class="string">"\r\n"</span><span class="special">,</span> <span class="identifier">handler</span><span class="special">);</span> 
</pre>
<p>
          After the <code class="computeroutput"><span class="identifier">async_read_until</span></code>
          operation completes successfully, the buffer <code class="computeroutput"><span class="identifier">b</span></code>
          contains the delimiter:
        </p>
<pre class="programlisting"><span class="special">{</span> <span class="char">'a'</span><span class="special">,</span> <span class="char">'b'</span><span class="special">,</span> <span class="special">...,</span> <span class="char">'c'</span><span class="special">,</span> <span class="char">'\r'</span><span class="special">,</span> <span class="char">'\n'</span><span class="special">,</span> <span class="char">'d'</span><span class="special">,</span> <span class="char">'e'</span><span class="special">,</span> <span class="special">...</span> <span class="special">}</span> 
</pre>
<p>
          The call to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">getline</span></code> then extracts the data up to
          and including the delimiter, so that the string <code class="computeroutput"><span class="identifier">line</span></code>
          contains:
        </p>
<pre class="programlisting"><span class="special">{</span> <span class="char">'a'</span><span class="special">,</span> <span class="char">'b'</span><span class="special">,</span> <span class="special">...,</span> <span class="char">'c'</span><span class="special">,</span> <span class="char">'\r'</span><span class="special">,</span> <span class="char">'\n'</span> <span class="special">}</span> 
</pre>
<p>
          The remaining data is left in the buffer <code class="computeroutput"><span class="identifier">b</span></code>
          as follows:
        </p>
<pre class="programlisting"><span class="special">{</span> <span class="char">'d'</span><span class="special">,</span> <span class="char">'e'</span><span class="special">,</span> <span class="special">...</span> <span class="special">}</span> 
</pre>
<p>
          This data may be the start of a new line, to be extracted by a subsequent
          <code class="computeroutput"><span class="identifier">async_read_until</span></code> operation.
        </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_until.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>
