...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Read data into a streambuf until it contains a delimiter, matches a regular expression, or a function object indicates a match.
template< typename SyncReadStream, typename Allocator> std::size_t read_until( SyncReadStream & s, boost::asio::basic_streambuf< Allocator > & b, char delim); template< typename SyncReadStream, typename Allocator> std::size_t read_until( SyncReadStream & s, boost::asio::basic_streambuf< Allocator > & b, char delim, boost::system::error_code & ec); template< typename SyncReadStream, typename Allocator> std::size_t read_until( SyncReadStream & s, boost::asio::basic_streambuf< Allocator > & b, const std::string & delim); template< typename SyncReadStream, typename Allocator> std::size_t read_until( SyncReadStream & s, boost::asio::basic_streambuf< Allocator > & b, const std::string & delim, boost::system::error_code & ec); template< typename SyncReadStream, typename Allocator> std::size_t read_until( SyncReadStream & s, boost::asio::basic_streambuf< Allocator > & b, const boost::regex & expr); template< typename SyncReadStream, typename Allocator> std::size_t read_until( SyncReadStream & s, boost::asio::basic_streambuf< Allocator > & b, const boost::regex & expr, boost::system::error_code & ec); template< typename SyncReadStream, typename Allocator, typename MatchCondition> std::size_t read_until( SyncReadStream & s, boost::asio::basic_streambuf< Allocator > & b, MatchCondition match_condition, typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0); template< typename SyncReadStream, typename Allocator, typename MatchCondition> std::size_t read_until( SyncReadStream & s, boost::asio::basic_streambuf< Allocator > & b, MatchCondition match_condition, boost::system::error_code & ec, typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);