mirror of
https://github.com/boostorg/beast.git
synced 2025-07-30 21:07:26 +02:00
Tidy up read implementation
This commit is contained in:
@ -1,3 +1,9 @@
|
||||
Version 210:
|
||||
|
||||
* Tidy up read implementation
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Version 209:
|
||||
|
||||
* Faster http::string_to_field
|
||||
|
@ -73,6 +73,8 @@ public:
|
||||
std::size_t max_size;
|
||||
std::size_t max_prepare;
|
||||
BOOST_ASIO_CORO_REENTER(*this)
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
max_size = cond_(ec, total_, b_);
|
||||
max_prepare = std::min<std::size_t>(
|
||||
@ -80,19 +82,13 @@ public:
|
||||
512, b_.capacity() - b_.size()),
|
||||
std::min<std::size_t>(
|
||||
max_size, b_.max_size() - b_.size()));
|
||||
while(max_prepare > 0)
|
||||
{
|
||||
if(max_prepare == 0)
|
||||
break;
|
||||
BOOST_ASIO_CORO_YIELD
|
||||
s_.async_read_some(
|
||||
b_.prepare(max_prepare), std::move(*this));
|
||||
b_.commit(bytes_transferred);
|
||||
total_ += bytes_transferred;
|
||||
max_size = cond_(ec, total_, b_);
|
||||
max_prepare = std::min<std::size_t>(
|
||||
std::max<std::size_t>(
|
||||
512, b_.capacity() - b_.size()),
|
||||
std::min<std::size_t>(
|
||||
max_size, b_.max_size() - b_.size()));
|
||||
}
|
||||
if(! cont)
|
||||
{
|
||||
@ -359,24 +355,20 @@ read(
|
||||
std::size_t total = 0;
|
||||
std::size_t max_size;
|
||||
std::size_t max_prepare;
|
||||
for(;;)
|
||||
{
|
||||
max_size = cond(ec, total, buffer);
|
||||
max_prepare = std::min<std::size_t>(
|
||||
std::max<std::size_t>(
|
||||
512, buffer.capacity() - buffer.size()),
|
||||
std::min<std::size_t>(
|
||||
max_size, buffer.max_size() - buffer.size()));
|
||||
while(max_prepare > 0)
|
||||
{
|
||||
if(max_prepare == 0)
|
||||
break;
|
||||
std::size_t const bytes_transferred =
|
||||
stream.read_some(buffer.prepare(max_prepare), ec);
|
||||
buffer.commit(bytes_transferred);
|
||||
total += bytes_transferred;
|
||||
max_size = cond(ec, total, buffer);
|
||||
max_prepare = std::min<std::size_t>(
|
||||
std::max<std::size_t>(
|
||||
512, buffer.capacity() - buffer.size()),
|
||||
std::min<std::size_t>(
|
||||
max_size, buffer.max_size() - buffer.size()));
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
Reference in New Issue
Block a user