Warning, file /include/boost/beast/core/detail/bind_continuation.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef BOOST_BEAST_DETAIL_BIND_CONTINUATION_HPP
0011 #define BOOST_BEAST_DETAIL_BIND_CONTINUATION_HPP
0012
0013 #include <boost/beast/core/detail/config.hpp>
0014 #include <boost/beast/core/detail/remap_post_to_defer.hpp>
0015 #include <boost/asio/bind_executor.hpp>
0016 #include <boost/core/empty_value.hpp>
0017 #include <type_traits>
0018 #include <utility>
0019
0020 namespace boost {
0021 namespace beast {
0022 namespace detail {
0023
0024 #if 0
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041 template<class CompletionHandler>
0042 #if BOOST_BEAST_DOXYGEN
0043 __implementation_defined__
0044 #else
0045 net::executor_binder<
0046 typename std::decay<CompletionHandler>::type,
0047 detail::remap_post_to_defer<
0048 net::associated_executor_t<CompletionHandler>>>
0049 #endif
0050 bind_continuation(CompletionHandler&& handler)
0051 {
0052 return net::bind_executor(
0053 detail::remap_post_to_defer<
0054 net::associated_executor_t<CompletionHandler>>(
0055 net::get_associated_executor(handler)),
0056 std::forward<CompletionHandler>(handler));
0057 }
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077 template<class Executor, class CompletionHandler>
0078 #if BOOST_BEAST_DOXYGEN
0079 __implementation_defined__
0080 #else
0081 net::executor_binder<typename
0082 std::decay<CompletionHandler>::type,
0083 detail::remap_post_to_defer<Executor>>
0084 #endif
0085 bind_continuation(
0086 Executor const& ex, CompletionHandler&& handler)
0087 {
0088 return net::bind_executor(
0089 detail::remap_post_to_defer<Executor>(ex),
0090 std::forward<CompletionHandler>(handler));
0091 }
0092 #else
0093
0094
0095
0096
0097
0098 template<class F>
0099 F&&
0100 bind_continuation(F&& f)
0101 {
0102 return std::forward<F>(f);
0103 }
0104 #endif
0105
0106 }
0107 }
0108 }
0109
0110 #endif