1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>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="read_at/overload8.html" title="read_at (8 of 8 overloads)"> 10<link rel="next" href="read_until/overload1.html" title="read_until (1 of 24 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="read_at/overload8.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="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.read_until"></a><a class="link" href="read_until.html" title="read_until">read_until</a> 28</h3></div></div></div> 29<p> 30 <a class="indexterm" name="boost_asio.indexterm.read_until"></a> 31The <code class="computeroutput">read_until</code> function 32 is a composed operation that reads data into a dynamic buffer sequence, or 33 into a streambuf, until it contains a delimiter, matches a regular expression, 34 or a function object indicates a match. 35 </p> 36<p> 37 Read data into a dynamic buffer sequence until it contains a specified delimiter. 38 </p> 39<pre class="programlisting">template< 40 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 41 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>> 42std::size_t <a class="link" href="read_until/overload1.html" title="read_until (1 of 24 overloads)">read_until</a>( 43 SyncReadStream & s, 44 DynamicBuffer_v1 && buffers, 45 char delim, 46 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); 47 <span class="emphasis"><em>» <a class="link" href="read_until/overload1.html" title="read_until (1 of 24 overloads)">more...</a></em></span> 48 49template< 50 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 51 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>> 52std::size_t <a class="link" href="read_until/overload2.html" title="read_until (2 of 24 overloads)">read_until</a>( 53 SyncReadStream & s, 54 DynamicBuffer_v1 && buffers, 55 char delim, 56 boost::system::error_code & ec, 57 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); 58 <span class="emphasis"><em>» <a class="link" href="read_until/overload2.html" title="read_until (2 of 24 overloads)">more...</a></em></span> 59 60template< 61 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 62 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>> 63std::size_t <a class="link" href="read_until/overload3.html" title="read_until (3 of 24 overloads)">read_until</a>( 64 SyncReadStream & s, 65 DynamicBuffer_v1 && buffers, 66 string_view delim, 67 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); 68 <span class="emphasis"><em>» <a class="link" href="read_until/overload3.html" title="read_until (3 of 24 overloads)">more...</a></em></span> 69 70template< 71 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 72 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>> 73std::size_t <a class="link" href="read_until/overload4.html" title="read_until (4 of 24 overloads)">read_until</a>( 74 SyncReadStream & s, 75 DynamicBuffer_v1 && buffers, 76 string_view delim, 77 boost::system::error_code & ec, 78 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); 79 <span class="emphasis"><em>» <a class="link" href="read_until/overload4.html" title="read_until (4 of 24 overloads)">more...</a></em></span> 80</pre> 81<p> 82 Read data into a dynamic buffer sequence until some part of the data it contains 83 matches a regular expression. 84 </p> 85<pre class="programlisting">template< 86 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 87 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>> 88std::size_t <a class="link" href="read_until/overload5.html" title="read_until (5 of 24 overloads)">read_until</a>( 89 SyncReadStream & s, 90 DynamicBuffer_v1 && buffers, 91 const boost::regex & expr, 92 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); 93 <span class="emphasis"><em>» <a class="link" href="read_until/overload5.html" title="read_until (5 of 24 overloads)">more...</a></em></span> 94 95template< 96 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 97 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>> 98std::size_t <a class="link" href="read_until/overload6.html" title="read_until (6 of 24 overloads)">read_until</a>( 99 SyncReadStream & s, 100 DynamicBuffer_v1 && buffers, 101 const boost::regex & expr, 102 boost::system::error_code & ec, 103 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); 104 <span class="emphasis"><em>» <a class="link" href="read_until/overload6.html" title="read_until (6 of 24 overloads)">more...</a></em></span> 105</pre> 106<p> 107 Read data into a dynamic buffer sequence until a function object indicates 108 a match. 109 </p> 110<pre class="programlisting">template< 111 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 112 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>, 113 typename MatchCondition> 114std::size_t <a class="link" href="read_until/overload7.html" title="read_until (7 of 24 overloads)">read_until</a>( 115 SyncReadStream & s, 116 DynamicBuffer_v1 && buffers, 117 MatchCondition match_condition, 118 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); 119 <span class="emphasis"><em>» <a class="link" href="read_until/overload7.html" title="read_until (7 of 24 overloads)">more...</a></em></span> 120 121template< 122 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 123 typename <a class="link" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">DynamicBuffer_v1</a>, 124 typename MatchCondition> 125std::size_t <a class="link" href="read_until/overload8.html" title="read_until (8 of 24 overloads)">read_until</a>( 126 SyncReadStream & s, 127 DynamicBuffer_v1 && buffers, 128 MatchCondition match_condition, 129 boost::system::error_code & ec, 130 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); 131 <span class="emphasis"><em>» <a class="link" href="read_until/overload8.html" title="read_until (8 of 24 overloads)">more...</a></em></span> 132</pre> 133<p> 134 Read data into a streambuf until it contains a specified delimiter. 135 </p> 136<pre class="programlisting">template< 137 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 138 typename Allocator> 139std::size_t <a class="link" href="read_until/overload9.html" title="read_until (9 of 24 overloads)">read_until</a>( 140 SyncReadStream & s, 141 boost::asio::basic_streambuf< Allocator > & b, 142 char delim); 143 <span class="emphasis"><em>» <a class="link" href="read_until/overload9.html" title="read_until (9 of 24 overloads)">more...</a></em></span> 144 145template< 146 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 147 typename Allocator> 148std::size_t <a class="link" href="read_until/overload10.html" title="read_until (10 of 24 overloads)">read_until</a>( 149 SyncReadStream & s, 150 boost::asio::basic_streambuf< Allocator > & b, 151 char delim, 152 boost::system::error_code & ec); 153 <span class="emphasis"><em>» <a class="link" href="read_until/overload10.html" title="read_until (10 of 24 overloads)">more...</a></em></span> 154 155template< 156 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 157 typename Allocator> 158std::size_t <a class="link" href="read_until/overload11.html" title="read_until (11 of 24 overloads)">read_until</a>( 159 SyncReadStream & s, 160 boost::asio::basic_streambuf< Allocator > & b, 161 string_view delim); 162 <span class="emphasis"><em>» <a class="link" href="read_until/overload11.html" title="read_until (11 of 24 overloads)">more...</a></em></span> 163 164template< 165 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 166 typename Allocator> 167std::size_t <a class="link" href="read_until/overload12.html" title="read_until (12 of 24 overloads)">read_until</a>( 168 SyncReadStream & s, 169 boost::asio::basic_streambuf< Allocator > & b, 170 string_view delim, 171 boost::system::error_code & ec); 172 <span class="emphasis"><em>» <a class="link" href="read_until/overload12.html" title="read_until (12 of 24 overloads)">more...</a></em></span> 173</pre> 174<p> 175 Read data into a streambuf until some part of the data it contains matches 176 a regular expression. 177 </p> 178<pre class="programlisting">template< 179 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 180 typename Allocator> 181std::size_t <a class="link" href="read_until/overload13.html" title="read_until (13 of 24 overloads)">read_until</a>( 182 SyncReadStream & s, 183 boost::asio::basic_streambuf< Allocator > & b, 184 const boost::regex & expr); 185 <span class="emphasis"><em>» <a class="link" href="read_until/overload13.html" title="read_until (13 of 24 overloads)">more...</a></em></span> 186 187template< 188 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 189 typename Allocator> 190std::size_t <a class="link" href="read_until/overload14.html" title="read_until (14 of 24 overloads)">read_until</a>( 191 SyncReadStream & s, 192 boost::asio::basic_streambuf< Allocator > & b, 193 const boost::regex & expr, 194 boost::system::error_code & ec); 195 <span class="emphasis"><em>» <a class="link" href="read_until/overload14.html" title="read_until (14 of 24 overloads)">more...</a></em></span> 196</pre> 197<p> 198 Read data into a streambuf until a function object indicates a match. 199 </p> 200<pre class="programlisting">template< 201 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 202 typename Allocator, 203 typename MatchCondition> 204std::size_t <a class="link" href="read_until/overload15.html" title="read_until (15 of 24 overloads)">read_until</a>( 205 SyncReadStream & s, 206 boost::asio::basic_streambuf< Allocator > & b, 207 MatchCondition match_condition, 208 typename enable_if< is_match_condition< MatchCondition >::value >::type * = 0); 209 <span class="emphasis"><em>» <a class="link" href="read_until/overload15.html" title="read_until (15 of 24 overloads)">more...</a></em></span> 210 211template< 212 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 213 typename Allocator, 214 typename MatchCondition> 215std::size_t <a class="link" href="read_until/overload16.html" title="read_until (16 of 24 overloads)">read_until</a>( 216 SyncReadStream & s, 217 boost::asio::basic_streambuf< Allocator > & b, 218 MatchCondition match_condition, 219 boost::system::error_code & ec, 220 typename enable_if< is_match_condition< MatchCondition >::value >::type * = 0); 221 <span class="emphasis"><em>» <a class="link" href="read_until/overload16.html" title="read_until (16 of 24 overloads)">more...</a></em></span> 222</pre> 223<p> 224 Read data into a dynamic buffer sequence until it contains a specified delimiter. 225 </p> 226<pre class="programlisting">template< 227 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 228 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>> 229std::size_t <a class="link" href="read_until/overload17.html" title="read_until (17 of 24 overloads)">read_until</a>( 230 SyncReadStream & s, 231 DynamicBuffer_v2 buffers, 232 char delim, 233 typename enable_if< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 234 <span class="emphasis"><em>» <a class="link" href="read_until/overload17.html" title="read_until (17 of 24 overloads)">more...</a></em></span> 235 236template< 237 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 238 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>> 239std::size_t <a class="link" href="read_until/overload18.html" title="read_until (18 of 24 overloads)">read_until</a>( 240 SyncReadStream & s, 241 DynamicBuffer_v2 buffers, 242 char delim, 243 boost::system::error_code & ec, 244 typename enable_if< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 245 <span class="emphasis"><em>» <a class="link" href="read_until/overload18.html" title="read_until (18 of 24 overloads)">more...</a></em></span> 246 247template< 248 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 249 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>> 250std::size_t <a class="link" href="read_until/overload19.html" title="read_until (19 of 24 overloads)">read_until</a>( 251 SyncReadStream & s, 252 DynamicBuffer_v2 buffers, 253 string_view delim, 254 typename enable_if< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 255 <span class="emphasis"><em>» <a class="link" href="read_until/overload19.html" title="read_until (19 of 24 overloads)">more...</a></em></span> 256 257template< 258 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 259 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>> 260std::size_t <a class="link" href="read_until/overload20.html" title="read_until (20 of 24 overloads)">read_until</a>( 261 SyncReadStream & s, 262 DynamicBuffer_v2 buffers, 263 string_view delim, 264 boost::system::error_code & ec, 265 typename enable_if< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 266 <span class="emphasis"><em>» <a class="link" href="read_until/overload20.html" title="read_until (20 of 24 overloads)">more...</a></em></span> 267</pre> 268<p> 269 Read data into a dynamic buffer sequence until some part of the data it contains 270 matches a regular expression. 271 </p> 272<pre class="programlisting">template< 273 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 274 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>> 275std::size_t <a class="link" href="read_until/overload21.html" title="read_until (21 of 24 overloads)">read_until</a>( 276 SyncReadStream & s, 277 DynamicBuffer_v2 buffers, 278 const boost::regex & expr, 279 typename enable_if< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 280 <span class="emphasis"><em>» <a class="link" href="read_until/overload21.html" title="read_until (21 of 24 overloads)">more...</a></em></span> 281 282template< 283 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 284 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>> 285std::size_t <a class="link" href="read_until/overload22.html" title="read_until (22 of 24 overloads)">read_until</a>( 286 SyncReadStream & s, 287 DynamicBuffer_v2 buffers, 288 const boost::regex & expr, 289 boost::system::error_code & ec, 290 typename enable_if< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 291 <span class="emphasis"><em>» <a class="link" href="read_until/overload22.html" title="read_until (22 of 24 overloads)">more...</a></em></span> 292</pre> 293<p> 294 Read data into a dynamic buffer sequence until a function object indicates 295 a match. 296 </p> 297<pre class="programlisting">template< 298 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 299 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>, 300 typename MatchCondition> 301std::size_t <a class="link" href="read_until/overload23.html" title="read_until (23 of 24 overloads)">read_until</a>( 302 SyncReadStream & s, 303 DynamicBuffer_v2 buffers, 304 MatchCondition match_condition, 305 typename enable_if< is_match_condition< MatchCondition >::value &&is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 306 <span class="emphasis"><em>» <a class="link" href="read_until/overload23.html" title="read_until (23 of 24 overloads)">more...</a></em></span> 307 308template< 309 typename <a class="link" href="SyncReadStream.html" title="Buffer-oriented synchronous read stream requirements">SyncReadStream</a>, 310 typename <a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">DynamicBuffer_v2</a>, 311 typename MatchCondition> 312std::size_t <a class="link" href="read_until/overload24.html" title="read_until (24 of 24 overloads)">read_until</a>( 313 SyncReadStream & s, 314 DynamicBuffer_v2 buffers, 315 MatchCondition match_condition, 316 boost::system::error_code & ec, 317 typename enable_if< is_match_condition< MatchCondition >::value &&is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type * = 0); 318 <span class="emphasis"><em>» <a class="link" href="read_until/overload24.html" title="read_until (24 of 24 overloads)">more...</a></em></span> 319</pre> 320<h5> 321<a name="boost_asio.reference.read_until.h0"></a> 322 <span class="phrase"><a name="boost_asio.reference.read_until.requirements"></a></span><a class="link" href="read_until.html#boost_asio.reference.read_until.requirements">Requirements</a> 323 </h5> 324<p> 325 <span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/read_until.hpp</code> 326 </p> 327<p> 328 <span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code> 329 </p> 330</div> 331<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 332<td align="left"></td> 333<td align="right"><div class="copyright-footer">Copyright © 2003-2020 Christopher M. 334 Kohlhoff<p> 335 Distributed under the Boost Software License, Version 1.0. (See accompanying 336 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>) 337 </p> 338</div></td> 339</tr></table> 340<hr> 341<div class="spirit-nav"> 342<a accesskey="p" href="read_at/overload8.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="read_until/overload1.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a> 343</div> 344</body> 345</html> 346