The read_until
function is
a composed operation that reads data into a dynamic buffer sequence, or into
a streambuf, until it contains a delimiter, matches a regular expression,
or a function object indicates a match.
Read data into a dynamic buffer sequence until it contains a specified delimiter.
template< typename SyncReadStream, typename DynamicBuffer_v1> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v1 && buffers, char delim, constraint_t< is_dynamic_buffer_v1< decay_t< DynamicBuffer_v1 > >::value > = 0, constraint_t< !is_dynamic_buffer_v2< decay_t< DynamicBuffer_v1 > >::value > = 0); » more... template< typename SyncReadStream, typename DynamicBuffer_v1> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v1 && buffers, char delim, asio::error_code & ec, constraint_t< is_dynamic_buffer_v1< decay_t< DynamicBuffer_v1 > >::value > = 0, constraint_t< !is_dynamic_buffer_v2< decay_t< DynamicBuffer_v1 > >::value > = 0); » more... template< typename SyncReadStream, typename DynamicBuffer_v1> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v1 && buffers, string_view delim, constraint_t< is_dynamic_buffer_v1< decay_t< DynamicBuffer_v1 > >::value > = 0, constraint_t< !is_dynamic_buffer_v2< decay_t< DynamicBuffer_v1 > >::value > = 0); » more... template< typename SyncReadStream, typename DynamicBuffer_v1> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v1 && buffers, string_view delim, asio::error_code & ec, constraint_t< is_dynamic_buffer_v1< decay_t< DynamicBuffer_v1 > >::value > = 0, constraint_t< !is_dynamic_buffer_v2< decay_t< DynamicBuffer_v1 > >::value > = 0); » more...
Read data into a dynamic buffer sequence until some part of the data it contains matches a regular expression.
template< typename SyncReadStream, typename DynamicBuffer_v1, typename Traits> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v1 && buffers, const boost::basic_regex< char, Traits > & expr, constraint_t< is_dynamic_buffer_v1< decay_t< DynamicBuffer_v1 > >::value > = 0, constraint_t< !is_dynamic_buffer_v2< decay_t< DynamicBuffer_v1 > >::value > = 0); » more... template< typename SyncReadStream, typename DynamicBuffer_v1, typename Traits> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v1 && buffers, const boost::basic_regex< char, Traits > & expr, asio::error_code & ec, constraint_t< is_dynamic_buffer_v1< decay_t< DynamicBuffer_v1 > >::value > = 0, constraint_t< !is_dynamic_buffer_v2< decay_t< DynamicBuffer_v1 > >::value > = 0); » more...
Read data into a dynamic buffer sequence until a function object indicates a match.
template< typename SyncReadStream, typename DynamicBuffer_v1, typename MatchCondition> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v1 && buffers, MatchCondition match_condition, constraint_t< is_match_condition< MatchCondition >::value > = 0, constraint_t< is_dynamic_buffer_v1< decay_t< DynamicBuffer_v1 > >::value > = 0, constraint_t< !is_dynamic_buffer_v2< decay_t< DynamicBuffer_v1 > >::value > = 0); » more... template< typename SyncReadStream, typename DynamicBuffer_v1, typename MatchCondition> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v1 && buffers, MatchCondition match_condition, asio::error_code & ec, constraint_t< is_match_condition< MatchCondition >::value > = 0, constraint_t< is_dynamic_buffer_v1< decay_t< DynamicBuffer_v1 > >::value > = 0, constraint_t< !is_dynamic_buffer_v2< decay_t< DynamicBuffer_v1 > >::value > = 0); » more...
Read data into a streambuf until it contains a specified delimiter.
template< typename SyncReadStream, typename Allocator> std::size_t read_until( SyncReadStream & s, asio::basic_streambuf< Allocator > & b, char delim); » more... template< typename SyncReadStream, typename Allocator> std::size_t read_until( SyncReadStream & s, asio::basic_streambuf< Allocator > & b, char delim, asio::error_code & ec); » more... template< typename SyncReadStream, typename Allocator> std::size_t read_until( SyncReadStream & s, asio::basic_streambuf< Allocator > & b, string_view delim); » more... template< typename SyncReadStream, typename Allocator> std::size_t read_until( SyncReadStream & s, asio::basic_streambuf< Allocator > & b, string_view delim, asio::error_code & ec); » more...
Read data into a streambuf until some part of the data it contains matches a regular expression.
template< typename SyncReadStream, typename Allocator, typename Traits> std::size_t read_until( SyncReadStream & s, asio::basic_streambuf< Allocator > & b, const boost::basic_regex< char, Traits > & expr); » more... template< typename SyncReadStream, typename Allocator, typename Traits> std::size_t read_until( SyncReadStream & s, asio::basic_streambuf< Allocator > & b, const boost::basic_regex< char, Traits > & expr, asio::error_code & ec); » more...
Read data into a streambuf until a function object indicates a match.
template< typename SyncReadStream, typename Allocator, typename MatchCondition> std::size_t read_until( SyncReadStream & s, asio::basic_streambuf< Allocator > & b, MatchCondition match_condition, constraint_t< is_match_condition< MatchCondition >::value > = 0); » more... template< typename SyncReadStream, typename Allocator, typename MatchCondition> std::size_t read_until( SyncReadStream & s, asio::basic_streambuf< Allocator > & b, MatchCondition match_condition, asio::error_code & ec, constraint_t< is_match_condition< MatchCondition >::value > = 0); » more...
Read data into a dynamic buffer sequence until it contains a specified delimiter.
template< typename SyncReadStream, typename DynamicBuffer_v2> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v2 buffers, char delim, constraint_t< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value > = 0); » more... template< typename SyncReadStream, typename DynamicBuffer_v2> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v2 buffers, char delim, asio::error_code & ec, constraint_t< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value > = 0); » more... template< typename SyncReadStream, typename DynamicBuffer_v2> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v2 buffers, string_view delim, constraint_t< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value > = 0); » more... template< typename SyncReadStream, typename DynamicBuffer_v2> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v2 buffers, string_view delim, asio::error_code & ec, constraint_t< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value > = 0); » more...
Read data into a dynamic buffer sequence until some part of the data it contains matches a regular expression.
template< typename SyncReadStream, typename DynamicBuffer_v2, typename Traits> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v2 buffers, const boost::basic_regex< char, Traits > & expr, constraint_t< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value > = 0); » more... template< typename SyncReadStream, typename DynamicBuffer_v2, typename Traits> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v2 buffers, const boost::basic_regex< char, Traits > & expr, asio::error_code & ec, constraint_t< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value > = 0); » more...
Read data into a dynamic buffer sequence until a function object indicates a match.
template< typename SyncReadStream, typename DynamicBuffer_v2, typename MatchCondition> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v2 buffers, MatchCondition match_condition, constraint_t< is_match_condition< MatchCondition >::value > = 0, constraint_t< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value > = 0); » more... template< typename SyncReadStream, typename DynamicBuffer_v2, typename MatchCondition> std::size_t read_until( SyncReadStream & s, DynamicBuffer_v2 buffers, MatchCondition match_condition, asio::error_code & ec, constraint_t< is_match_condition< MatchCondition >::value > = 0, constraint_t< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value > = 0); » more...
Header: asio/impl/read_until.hpp
Convenience header: asio.hpp