Прочитайте данные в streambuf до тех пор, пока они не будут содержать определенный разграничитель.
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);
Эта функция используется для считывания данных в указанный streambuf до тех пор, пока область получения streambuf не содержит указанный делимитер. Звонок будет блокироваться до тех пор, пока не будет выполнено одно из следующих условий:
- Зона получения Streambuf содержит указанный делимитер.
- Произошла ошибка.
Эта операция реализована с точки зрения нуля или более вызовов функции read_some потока. Если область получения Streambuf уже содержит разграничитель, функция немедленно возвращается.
- s
Поток, из которого следует читать данные. Этот тип должен поддерживать концепцию SyncReadStream.
- b
Объект streambuf, в который будут считываться данные.
- delim
Струна разграничителя.
- ec
Установить, какая ошибка произошла, если таковая имеется.
Количество байтов в зоне доступа Streambuf до и включая разграничитель. 0, если произошла ошибка.
После успешной операции read_until, streambuf может содержать дополнительные данные за пределами разграничителя. Приложение, как правило, оставляет эти данные в streambuf для последующего чтения до тех пор, пока операция не будет изучена.