File indexing completed on 2025-01-18 09:28:53
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef BOOST_ASIO_IMPL_ANY_COMPLETION_EXECUTOR_IPP
0012 #define BOOST_ASIO_IMPL_ANY_COMPLETION_EXECUTOR_IPP
0013
0014 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
0015 # pragma once
0016 #endif
0017
0018 #include <boost/asio/detail/config.hpp>
0019
0020 #if !defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
0021
0022 #include <boost/asio/any_completion_executor.hpp>
0023
0024 #include <boost/asio/detail/push_options.hpp>
0025
0026 namespace boost {
0027 namespace asio {
0028
0029 any_completion_executor::any_completion_executor() noexcept
0030 : base_type()
0031 {
0032 }
0033
0034 any_completion_executor::any_completion_executor(nullptr_t) noexcept
0035 : base_type(nullptr_t())
0036 {
0037 }
0038
0039 any_completion_executor::any_completion_executor(
0040 const any_completion_executor& e) noexcept
0041 : base_type(static_cast<const base_type&>(e))
0042 {
0043 }
0044
0045 any_completion_executor::any_completion_executor(std::nothrow_t,
0046 const any_completion_executor& e) noexcept
0047 : base_type(static_cast<const base_type&>(e))
0048 {
0049 }
0050
0051 any_completion_executor::any_completion_executor(
0052 any_completion_executor&& e) noexcept
0053 : base_type(static_cast<base_type&&>(e))
0054 {
0055 }
0056
0057 any_completion_executor::any_completion_executor(std::nothrow_t,
0058 any_completion_executor&& e) noexcept
0059 : base_type(static_cast<base_type&&>(e))
0060 {
0061 }
0062
0063 any_completion_executor& any_completion_executor::operator=(
0064 const any_completion_executor& e) noexcept
0065 {
0066 base_type::operator=(static_cast<const base_type&>(e));
0067 return *this;
0068 }
0069
0070 any_completion_executor& any_completion_executor::operator=(
0071 any_completion_executor&& e) noexcept
0072 {
0073 base_type::operator=(static_cast<base_type&&>(e));
0074 return *this;
0075 }
0076
0077 any_completion_executor& any_completion_executor::operator=(nullptr_t)
0078 {
0079 base_type::operator=(nullptr_t());
0080 return *this;
0081 }
0082
0083 any_completion_executor::~any_completion_executor()
0084 {
0085 }
0086
0087 void any_completion_executor::swap(
0088 any_completion_executor& other) noexcept
0089 {
0090 static_cast<base_type&>(*this).swap(static_cast<base_type&>(other));
0091 }
0092
0093 template <>
0094 any_completion_executor any_completion_executor::prefer(
0095 const execution::outstanding_work_t::tracked_t& p, int) const
0096 {
0097 return static_cast<const base_type&>(*this).prefer(p);
0098 }
0099
0100 template <>
0101 any_completion_executor any_completion_executor::prefer(
0102 const execution::outstanding_work_t::untracked_t& p, int) const
0103 {
0104 return static_cast<const base_type&>(*this).prefer(p);
0105 }
0106
0107 template <>
0108 any_completion_executor any_completion_executor::prefer(
0109 const execution::relationship_t::fork_t& p, int) const
0110 {
0111 return static_cast<const base_type&>(*this).prefer(p);
0112 }
0113
0114 template <>
0115 any_completion_executor any_completion_executor::prefer(
0116 const execution::relationship_t::continuation_t& p, int) const
0117 {
0118 return static_cast<const base_type&>(*this).prefer(p);
0119 }
0120
0121 }
0122 }
0123
0124 #include <boost/asio/detail/pop_options.hpp>
0125
0126 #endif
0127
0128 #endif