mirror of
https://github.com/boostorg/beast.git
synced 2025-07-29 20:37:31 +02:00
Use if
statement in basic_stream:
An `if` statement is cheaper to instantiate without additional runtime cost when optimizations are enabled. Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
This commit is contained in:
@ -3,6 +3,7 @@ Version 257:
|
||||
* Add b2 features for compile-time options used in testing
|
||||
* Remove redundant dependencies in http/server/fast example
|
||||
* Remove experimental/unit_test/thread.hpp
|
||||
* Use `if` statement in basic_stream::transfer_op
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
@ -219,63 +219,35 @@ class transfer_op
|
||||
|
||||
using is_read = std::integral_constant<bool, isRead>;
|
||||
|
||||
op_state&
|
||||
state(std::true_type)
|
||||
{
|
||||
return impl_->read;
|
||||
}
|
||||
|
||||
op_state&
|
||||
state(std::false_type)
|
||||
{
|
||||
return impl_->write;
|
||||
}
|
||||
|
||||
op_state&
|
||||
state()
|
||||
{
|
||||
return state(
|
||||
std::integral_constant<bool, isRead>{});
|
||||
}
|
||||
|
||||
std::size_t
|
||||
available_bytes(std::true_type)
|
||||
{
|
||||
return rate_policy_access::
|
||||
available_read_bytes(impl_->policy());
|
||||
}
|
||||
|
||||
std::size_t
|
||||
available_bytes(std::false_type)
|
||||
{
|
||||
return rate_policy_access::
|
||||
available_write_bytes(impl_->policy());
|
||||
if (isRead)
|
||||
return impl_->read;
|
||||
else
|
||||
return impl_->write;
|
||||
}
|
||||
|
||||
std::size_t
|
||||
available_bytes()
|
||||
{
|
||||
return available_bytes(is_read{});
|
||||
}
|
||||
|
||||
void
|
||||
transfer_bytes(std::size_t n, std::true_type)
|
||||
{
|
||||
rate_policy_access::
|
||||
transfer_read_bytes(impl_->policy(), n);
|
||||
}
|
||||
|
||||
void
|
||||
transfer_bytes(std::size_t n, std::false_type)
|
||||
{
|
||||
rate_policy_access::
|
||||
transfer_write_bytes(impl_->policy(), n);
|
||||
if (isRead)
|
||||
return rate_policy_access::
|
||||
available_read_bytes(impl_->policy());
|
||||
else
|
||||
return rate_policy_access::
|
||||
available_write_bytes(impl_->policy());
|
||||
}
|
||||
|
||||
void
|
||||
transfer_bytes(std::size_t n)
|
||||
{
|
||||
transfer_bytes(n, is_read{});
|
||||
if (isRead)
|
||||
rate_policy_access::
|
||||
transfer_read_bytes(impl_->policy(), n);
|
||||
else
|
||||
rate_policy_access::
|
||||
transfer_write_bytes(impl_->policy(), n);
|
||||
}
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user