mirror of
https://github.com/boostorg/beast.git
synced 2025-07-29 20:37:31 +02:00
New name for polymorphic executor. Trait for detecting new executors
This commit is contained in:
committed by
Richard Hodges
parent
22f2f5dcf4
commit
55302a3f8f
@ -1,3 +1,5 @@
|
||||
|
||||
* New name for polymorphic executor. Trait for detecting new executors.
|
||||
* Handler invoke and allocation hooks are deprecated.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
@ -53,7 +53,7 @@ class session : public std::enable_shared_from_this<session>
|
||||
public:
|
||||
explicit
|
||||
session(
|
||||
net::executor ex,
|
||||
net::any_io_executor ex,
|
||||
ssl::context& ctx)
|
||||
: resolver_(ex)
|
||||
, stream_(ex, ctx)
|
||||
|
@ -182,7 +182,7 @@ class async_base
|
||||
#endif
|
||||
{
|
||||
static_assert(
|
||||
net::is_executor<Executor1>::value,
|
||||
net::is_executor<Executor1>::value || net::execution::is_executor<Executor1>::value,
|
||||
"Executor type requirements not met");
|
||||
|
||||
Handler h_;
|
||||
|
@ -182,7 +182,7 @@ namespace beast {
|
||||
|
||||
@tparam Executor A type meeting the requirements of <em>Executor</em> to
|
||||
be used for submitting all completion handlers which do not already have an
|
||||
associated executor. If this type is omitted, the default of `net::executor`
|
||||
associated executor. If this type is omitted, the default of `net::any_io_executor`
|
||||
will be used.
|
||||
|
||||
@par Thread Safety
|
||||
@ -197,7 +197,7 @@ namespace beast {
|
||||
*/
|
||||
template<
|
||||
class Protocol,
|
||||
class Executor = net::executor,
|
||||
class Executor = net::any_io_executor,
|
||||
class RatePolicy = unlimited_rate_policy
|
||||
>
|
||||
class basic_stream
|
||||
@ -233,7 +233,8 @@ public:
|
||||
using endpoint_type = typename Protocol::endpoint;
|
||||
|
||||
private:
|
||||
static_assert(net::is_executor<Executor>::value,
|
||||
static_assert(
|
||||
net::is_executor<Executor>::value || net::execution::is_executor<Executor>::value,
|
||||
"Executor type requirements not met");
|
||||
|
||||
struct impl_type
|
||||
|
@ -56,7 +56,7 @@ get_io_context(net::strand<Executor> const& ex)
|
||||
template<
|
||||
class T,
|
||||
class = typename std::enable_if<
|
||||
std::is_same<T, net::executor>::value>::type>
|
||||
std::is_same<T, net::executor>::value || std::is_same<T, net::any_io_executor>::value>::type>
|
||||
net::io_context*
|
||||
get_io_context(T const& ex)
|
||||
{
|
||||
|
@ -25,7 +25,7 @@ namespace beast {
|
||||
*/
|
||||
using tcp_stream = basic_stream<
|
||||
net::ip::tcp,
|
||||
net::executor,
|
||||
net::any_io_executor,
|
||||
unlimited_rate_policy>;
|
||||
|
||||
} // beast
|
||||
|
@ -32,13 +32,13 @@ public:
|
||||
BEAST_EXPECT(get_io_context(ioc) == &ioc);
|
||||
BEAST_EXPECT(get_io_context(ioc.get_executor()) == &ioc);
|
||||
BEAST_EXPECT(get_io_context(net::make_strand(ioc)) == &ioc);
|
||||
BEAST_EXPECT(get_io_context(net::executor(ioc.get_executor())) == &ioc);
|
||||
BEAST_EXPECT(get_io_context(net::any_io_executor(ioc.get_executor())) == &ioc);
|
||||
#if 0
|
||||
// VFALCO FIXME
|
||||
BEAST_EXPECT(
|
||||
get_io_context(
|
||||
net::strand<net::executor>(
|
||||
net::executor(ioc.get_executor()))) == &ioc);
|
||||
net::strand<net::any_io_executor>(
|
||||
net::any_io_executor(ioc.get_executor()))) == &ioc);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -43,12 +43,12 @@ namespace beast {
|
||||
#if 0
|
||||
template class basic_stream<
|
||||
net::ip::tcp,
|
||||
net::executor,
|
||||
net::any_io_executor,
|
||||
unlimited_rate_policy>;
|
||||
|
||||
template class basic_stream<
|
||||
net::ip::tcp,
|
||||
net::executor,
|
||||
net::any_io_executor,
|
||||
simple_rate_policy>;
|
||||
#endif
|
||||
|
||||
|
@ -28,7 +28,7 @@ public:
|
||||
net::make_strand(ioc.get_executor());
|
||||
net::make_strand(net::make_strand(ioc));
|
||||
|
||||
net::executor ex(ioc.get_executor());
|
||||
net::any_io_executor ex(ioc.get_executor());
|
||||
net::make_strand(ex);
|
||||
|
||||
// this *should-not* compile
|
||||
|
@ -378,7 +378,7 @@ public:
|
||||
using socket_type =
|
||||
net::basic_stream_socket<
|
||||
net::ip::tcp,
|
||||
net::executor>;
|
||||
net::any_io_executor>;
|
||||
net::io_context ioc;
|
||||
stream<socket_type> ws1(ioc);
|
||||
stream<socket_type> ws2(ioc);
|
||||
|
@ -62,7 +62,7 @@ public:
|
||||
boost::asio::ssl::stream<
|
||||
boost::asio::basic_stream_socket<
|
||||
boost::asio::ip::tcp,
|
||||
boost::asio::executor>>>();
|
||||
net::any_io_executor>>>();
|
||||
|
||||
}
|
||||
};
|
||||
|
@ -288,7 +288,7 @@ struct associated_allocator<handler, Allocator>
|
||||
template<class Executor>
|
||||
struct associated_executor<handler, Executor>
|
||||
{
|
||||
using type = boost::asio::executor;
|
||||
using type = boost::asio::any_io_executor;
|
||||
|
||||
static
|
||||
type
|
||||
|
@ -205,7 +205,7 @@ core_3_timeouts_snippets()
|
||||
// if the choice of RatePolicy is not DefaultConstructible,
|
||||
// an instance of the type may be passed to the constructor.
|
||||
|
||||
basic_stream<net::ip::tcp, net::executor, simple_rate_policy> stream(ioc);
|
||||
basic_stream<net::ip::tcp, net::any_io_executor, simple_rate_policy> stream(ioc);
|
||||
|
||||
// The policy object, which is default constructed, or
|
||||
// decay-copied upon construction, is attached to the stream
|
||||
@ -586,7 +586,7 @@ core_3_timeouts_snippets2()
|
||||
//[code_core_3_timeouts_9
|
||||
|
||||
// This stream will use our new rate_gauge policy
|
||||
basic_stream<net::ip::tcp, net::executor, rate_gauge> stream(ioc);
|
||||
basic_stream<net::ip::tcp, net::any_io_executor, rate_gauge> stream(ioc);
|
||||
|
||||
//...
|
||||
|
||||
@ -600,7 +600,7 @@ core_3_timeouts_snippets2()
|
||||
|
||||
} // (anon)
|
||||
|
||||
template class basic_stream<net::ip::tcp, net::executor, rate_gauge>;
|
||||
template class basic_stream<net::ip::tcp, net::any_io_executor, rate_gauge>;
|
||||
|
||||
struct core_3_timeouts_test
|
||||
: public beast::unit_test::suite
|
||||
|
Reference in New Issue
Block a user