1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>async_read_until</title> 5<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../../boost_asio.html" title="Boost.Asio"> 8<link rel="up" href="../reference.html" title="Reference"> 9<link rel="prev" href="async_read_at/overload4.html" title="async_read_at (4 of 4 overloads)"> 10<link rel="next" href="async_read_until/overload1.html" title="async_read_until (1 of 12 overloads)"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td> 15<td align="center"><a href="../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="async_read_at/overload4.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="async_read_until/overload1.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h3 class="title"> 27<a name="boost_asio.reference.async_read_until"></a><a class="link" href="async_read_until.html" title="async_read_until">async_read_until</a> 28</h3></div></div></div> 29<p> 30 <a class="indexterm" name="boost_asio.indexterm.async_read_until"></a> 31The <code class="computeroutput">async_read_until</code> 32 function is a composed asynchronous operation that reads data into a dynamic 33 buffer sequence, or into a streambuf, until it contains a delimiter, matches 34 a regular expression, or a function object indicates a match. 35 </p> 36<p> 37 Start an asynchronous operation to read data into a dynamic buffer sequence 38 until it contains a specified delimiter. 39 </p> 40<pre class="programlisting">template< 41 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 42 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>, 43 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 44<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload1.html" title="async_read_until (1 of 12 overloads)">async_read_until</a>( 45 AsyncReadStream & s, 46 DynamicBuffer_v1 && buffers, 47 char delim, 48 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>, 49 typename enable_if< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value &&!is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type * = 0); 50 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload1.html" title="async_read_until (1 of 12 overloads)">more...</a></em></span> 51 52template< 53 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 54 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>, 55 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 56<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload2.html" title="async_read_until (2 of 12 overloads)">async_read_until</a>( 57 AsyncReadStream & s, 58 DynamicBuffer_v1 && buffers, 59 string_view delim, 60 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>, 61 typename enable_if< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value &&!is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type * = 0); 62 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload2.html" title="async_read_until (2 of 12 overloads)">more...</a></em></span> 63</pre> 64<p> 65 Start an asynchronous operation to read data into a dynamic buffer sequence 66 until some part of its data matches a regular expression. 67 </p> 68<pre class="programlisting">template< 69 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 70 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>, 71 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 72<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload3.html" title="async_read_until (3 of 12 overloads)">async_read_until</a>( 73 AsyncReadStream & s, 74 DynamicBuffer_v1 && buffers, 75 const boost::regex & expr, 76 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>, 77 typename enable_if< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value &&!is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type * = 0); 78 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload3.html" title="async_read_until (3 of 12 overloads)">more...</a></em></span> 79</pre> 80<p> 81 Start an asynchronous operation to read data into a dynamic buffer sequence 82 until a function object indicates a match. 83 </p> 84<pre class="programlisting">template< 85 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 86 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>, 87 typename MatchCondition, 88 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 89<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload4.html" title="async_read_until (4 of 12 overloads)">async_read_until</a>( 90 AsyncReadStream & s, 91 DynamicBuffer_v1 && buffers, 92 MatchCondition match_condition, 93 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>, 94 typename enable_if< is_match_condition< MatchCondition >::value &&is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value &&!is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type * = 0); 95 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload4.html" title="async_read_until (4 of 12 overloads)">more...</a></em></span> 96</pre> 97<p> 98 Start an asynchronous operation to read data into a streambuf until it contains 99 a specified delimiter. 100 </p> 101<pre class="programlisting">template< 102 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 103 typename Allocator, 104 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 105<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload5.html" title="async_read_until (5 of 12 overloads)">async_read_until</a>( 106 AsyncReadStream & s, 107 boost::asio::basic_streambuf< Allocator > & b, 108 char delim, 109 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>); 110 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload5.html" title="async_read_until (5 of 12 overloads)">more...</a></em></span> 111 112template< 113 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 114 typename Allocator, 115 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 116<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload6.html" title="async_read_until (6 of 12 overloads)">async_read_until</a>( 117 AsyncReadStream & s, 118 boost::asio::basic_streambuf< Allocator > & b, 119 string_view delim, 120 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>); 121 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload6.html" title="async_read_until (6 of 12 overloads)">more...</a></em></span> 122</pre> 123<p> 124 Start an asynchronous operation to read data into a streambuf until some 125 part of its data matches a regular expression. 126 </p> 127<pre class="programlisting">template< 128 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 129 typename Allocator, 130 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 131<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload7.html" title="async_read_until (7 of 12 overloads)">async_read_until</a>( 132 AsyncReadStream & s, 133 boost::asio::basic_streambuf< Allocator > & b, 134 const boost::regex & expr, 135 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>); 136 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload7.html" title="async_read_until (7 of 12 overloads)">more...</a></em></span> 137</pre> 138<p> 139 Start an asynchronous operation to read data into a streambuf until a function 140 object indicates a match. 141 </p> 142<pre class="programlisting">template< 143 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 144 typename Allocator, 145 typename MatchCondition, 146 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 147<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload8.html" title="async_read_until (8 of 12 overloads)">async_read_until</a>( 148 AsyncReadStream & s, 149 boost::asio::basic_streambuf< Allocator > & b, 150 MatchCondition match_condition, 151 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>, 152 typename enable_if< is_match_condition< MatchCondition >::value >::type * = 0); 153 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload8.html" title="async_read_until (8 of 12 overloads)">more...</a></em></span> 154</pre> 155<p> 156 Start an asynchronous operation to read data into a dynamic buffer sequence 157 until it contains a specified delimiter. 158 </p> 159<pre class="programlisting">template< 160 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 161 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>, 162 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 163<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload9.html" title="async_read_until (9 of 12 overloads)">async_read_until</a>( 164 AsyncReadStream & s, 165 DynamicBuffer_v2 buffers, 166 char delim, 167 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>, 168 typename enable_if< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 169 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload9.html" title="async_read_until (9 of 12 overloads)">more...</a></em></span> 170 171template< 172 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 173 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>, 174 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 175<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload10.html" title="async_read_until (10 of 12 overloads)">async_read_until</a>( 176 AsyncReadStream & s, 177 DynamicBuffer_v2 buffers, 178 string_view delim, 179 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>, 180 typename enable_if< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 181 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload10.html" title="async_read_until (10 of 12 overloads)">more...</a></em></span> 182</pre> 183<p> 184 Start an asynchronous operation to read data into a dynamic buffer sequence 185 until some part of its data matches a regular expression. 186 </p> 187<pre class="programlisting">template< 188 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 189 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>, 190 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 191<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload11.html" title="async_read_until (11 of 12 overloads)">async_read_until</a>( 192 AsyncReadStream & s, 193 DynamicBuffer_v2 buffers, 194 const boost::regex & expr, 195 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>, 196 typename enable_if< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 197 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload11.html" title="async_read_until (11 of 12 overloads)">more...</a></em></span> 198</pre> 199<p> 200 Start an asynchronous operation to read data into a dynamic buffer sequence 201 until a function object indicates a match. 202 </p> 203<pre class="programlisting">template< 204 typename <a class="link" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">AsyncReadStream</a>, 205 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>, 206 typename MatchCondition, 207 typename <a class="link" href="ReadHandler.html" title="Read handler requirements">ReadHandler</a> = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>> 208<a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <a class="link" href="async_read_until/overload12.html" title="async_read_until (12 of 12 overloads)">async_read_until</a>( 209 AsyncReadStream & s, 210 DynamicBuffer_v2 buffers, 211 MatchCondition match_condition, 212 ReadHandler && handler = <a class="link" href="asynchronous_operations.html#boost_asio.reference.asynchronous_operations.default_completion_tokens"><span class="emphasis"><em>DEFAULT</em></span></a>, 213 typename enable_if< is_match_condition< MatchCondition >::value &&is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 214 <span class="emphasis"><em>» <a class="link" href="async_read_until/overload12.html" title="async_read_until (12 of 12 overloads)">more...</a></em></span> 215</pre> 216<h5> 217<a name="boost_asio.reference.async_read_until.h0"></a> 218 <span class="phrase"><a name="boost_asio.reference.async_read_until.requirements"></a></span><a class="link" href="async_read_until.html#boost_asio.reference.async_read_until.requirements">Requirements</a> 219 </h5> 220<p> 221 <span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/read_until.hpp</code> 222 </p> 223<p> 224 <span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code> 225 </p> 226</div> 227<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 228<td align="left"></td> 229<td align="right"><div class="copyright-footer">Copyright © 2003-2020 Christopher M. 230 Kohlhoff<p> 231 Distributed under the Boost Software License, Version 1.0. (See accompanying 232 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>) 233 </p> 234</div></td> 235</tr></table> 236<hr> 237<div class="spirit-nav"> 238<a accesskey="p" href="async_read_at/overload4.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="async_read_until/overload1.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> 239</div> 240</body> 241</html> 242