diff --git a/include/boost/beast/core/detail/bind_default_executor.hpp b/include/boost/beast/core/detail/bind_default_executor.hpp deleted file mode 100644 index 9dd050a10d..0000000000 --- a/include/boost/beast/core/detail/bind_default_executor.hpp +++ /dev/null @@ -1,131 +0,0 @@ -// -// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// Official repository: https://github.com/boostorg/beast -// - -#ifndef BOOST_BEAST_CORE_DETAIL_BIND_DEFAULT_EXECUTOR_HPP -#define BOOST_BEAST_CORE_DETAIL_BIND_DEFAULT_EXECUTOR_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace beast { -namespace detail { - -template -class bind_default_executor_wrapper - : private boost::empty_value -{ - Handler h_; - -public: - template - bind_default_executor_wrapper( - Handler_&& h, - Executor const& ex) - : boost::empty_value( - boost::empty_init_t{}, ex) - , h_(std::forward(h)) - { - } - - template - void - operator()(Args&&... args) - { - h_(std::forward(args)...); - } - - using allocator_type = - net::associated_allocator_t; - - allocator_type - get_allocator() const noexcept - { - return net::get_associated_allocator(h_); - } - - using executor_type = - net::associated_executor_t; - - executor_type - get_executor() const noexcept - { - return net::get_associated_executor( - h_, this->get()); - } - - using cancellation_slot_type = - net::associated_cancellation_slot_t; - - cancellation_slot_type - get_cancellation_slot() const noexcept - { - return net::get_associated_cancellation_slot(h_, - net::cancellation_slot()); - } - - // The allocation hooks are still defined because they trivially forward to - // user hooks. Forward here ensures that the user will get a compile error - // if they build their code with BOOST_ASIO_NO_DEPRECATED. - - friend - boost::asio::asio_handler_allocate_is_deprecated - asio_handler_allocate( - std::size_t size, bind_default_executor_wrapper* p) - { - using boost::asio::asio_handler_allocate; - return asio_handler_allocate( - size, std::addressof(p->h_)); - } - - friend - boost::asio::asio_handler_deallocate_is_deprecated - asio_handler_deallocate( - void* mem, std::size_t size, - bind_default_executor_wrapper* p) - { - using boost::asio::asio_handler_deallocate; - return asio_handler_deallocate(mem, size, - std::addressof(p->h_)); - } - - friend - bool asio_handler_is_continuation( - bind_default_executor_wrapper* p) - { - using boost::asio::asio_handler_is_continuation; - return asio_handler_is_continuation( - std::addressof(p->h_)); - } -}; - -template -auto -bind_default_executor(Executor const& ex, Handler&& h) -> - bind_default_executor_wrapper< - typename std::decay::type, - Executor> -{ - return bind_default_executor_wrapper< - typename std::decay::type, - Executor>(std::forward(h), ex); -} - -} // detail -} // beast -} // boost - -#endif