File indexing completed on 2025-01-18 09:29:03
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef BOOST_ASIO_TS_NETFWD_HPP
0012 #define BOOST_ASIO_TS_NETFWD_HPP
0013
0014 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
0015 # pragma once
0016 #endif
0017
0018 #include <boost/asio/detail/config.hpp>
0019 #include <boost/asio/detail/chrono.hpp>
0020
0021 #if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
0022 # include <boost/asio/detail/date_time_fwd.hpp>
0023 #endif
0024
0025 #if !defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
0026 #include <boost/asio/execution/blocking.hpp>
0027 #include <boost/asio/execution/outstanding_work.hpp>
0028 #include <boost/asio/execution/relationship.hpp>
0029 #endif
0030
0031 #if !defined(GENERATING_DOCUMENTATION)
0032
0033 #include <boost/asio/detail/push_options.hpp>
0034
0035 namespace boost {
0036 namespace asio {
0037
0038 class execution_context;
0039
0040 template <typename T, typename Executor>
0041 class executor_binder;
0042
0043 #if !defined(BOOST_ASIO_EXECUTOR_WORK_GUARD_DECL)
0044 #define BOOST_ASIO_EXECUTOR_WORK_GUARD_DECL
0045
0046 template <typename Executor, typename = void, typename = void>
0047 class executor_work_guard;
0048
0049 #endif
0050
0051 template <typename Blocking, typename Relationship, typename Allocator>
0052 class basic_system_executor;
0053
0054 #if defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
0055
0056 class executor;
0057
0058 typedef executor any_io_executor;
0059
0060 #else
0061
0062 namespace execution {
0063
0064 #if !defined(BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL)
0065 #define BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL
0066
0067 template <typename... SupportableProperties>
0068 class any_executor;
0069
0070 #endif
0071
0072 template <typename U>
0073 struct context_as_t;
0074
0075 template <typename Property>
0076 struct prefer_only;
0077
0078 }
0079
0080 class any_io_executor;
0081
0082 #endif
0083
0084 template <typename Executor>
0085 class strand;
0086
0087 class io_context;
0088
0089 template <typename Clock>
0090 struct wait_traits;
0091
0092 #if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
0093
0094 template <typename Time>
0095 struct time_traits;
0096
0097 #endif
0098
0099 #if !defined(BOOST_ASIO_BASIC_WAITABLE_TIMER_FWD_DECL)
0100 #define BOOST_ASIO_BASIC_WAITABLE_TIMER_FWD_DECL
0101
0102 template <typename Clock,
0103 typename WaitTraits = wait_traits<Clock>,
0104 typename Executor = any_io_executor>
0105 class basic_waitable_timer;
0106
0107 #endif
0108
0109 typedef basic_waitable_timer<chrono::system_clock> system_timer;
0110
0111 typedef basic_waitable_timer<chrono::steady_clock> steady_timer;
0112
0113 typedef basic_waitable_timer<chrono::high_resolution_clock>
0114 high_resolution_timer;
0115
0116 #if !defined(BOOST_ASIO_BASIC_SOCKET_FWD_DECL)
0117 #define BOOST_ASIO_BASIC_SOCKET_FWD_DECL
0118
0119 template <typename Protocol, typename Executor = any_io_executor>
0120 class basic_socket;
0121
0122 #endif
0123
0124 #if !defined(BOOST_ASIO_BASIC_DATAGRAM_SOCKET_FWD_DECL)
0125 #define BOOST_ASIO_BASIC_DATAGRAM_SOCKET_FWD_DECL
0126
0127 template <typename Protocol, typename Executor = any_io_executor>
0128 class basic_datagram_socket;
0129
0130 #endif
0131
0132 #if !defined(BOOST_ASIO_BASIC_STREAM_SOCKET_FWD_DECL)
0133 #define BOOST_ASIO_BASIC_STREAM_SOCKET_FWD_DECL
0134
0135
0136 template <typename Protocol, typename Executor = any_io_executor>
0137 class basic_stream_socket;
0138
0139 #endif
0140
0141 #if !defined(BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL)
0142 #define BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL
0143
0144 template <typename Protocol, typename Executor = any_io_executor>
0145 class basic_socket_acceptor;
0146
0147 #endif
0148
0149 #if !defined(BOOST_ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL)
0150 #define BOOST_ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL
0151
0152
0153 template <typename Protocol,
0154 #if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) \
0155 || defined(GENERATING_DOCUMENTATION)
0156 typename Clock = boost::posix_time::ptime,
0157 typename WaitTraits = time_traits<Clock>>
0158 #else
0159 typename Clock = chrono::steady_clock,
0160 typename WaitTraits = wait_traits<Clock>>
0161 #endif
0162 class basic_socket_streambuf;
0163
0164 #endif
0165
0166 #if !defined(BOOST_ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL)
0167 #define BOOST_ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL
0168
0169
0170 template <typename Protocol,
0171 #if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) \
0172 || defined(GENERATING_DOCUMENTATION)
0173 typename Clock = boost::posix_time::ptime,
0174 typename WaitTraits = time_traits<Clock>>
0175 #else
0176 typename Clock = chrono::steady_clock,
0177 typename WaitTraits = wait_traits<Clock>>
0178 #endif
0179 class basic_socket_iostream;
0180
0181 #endif
0182
0183 namespace ip {
0184
0185 class address;
0186
0187 class address_v4;
0188
0189 class address_v6;
0190
0191 template <typename Address>
0192 class basic_address_iterator;
0193
0194 typedef basic_address_iterator<address_v4> address_v4_iterator;
0195
0196 typedef basic_address_iterator<address_v6> address_v6_iterator;
0197
0198 template <typename Address>
0199 class basic_address_range;
0200
0201 typedef basic_address_range<address_v4> address_v4_range;
0202
0203 typedef basic_address_range<address_v6> address_v6_range;
0204
0205 class network_v4;
0206
0207 class network_v6;
0208
0209 template <typename InternetProtocol>
0210 class basic_endpoint;
0211
0212 template <typename InternetProtocol>
0213 class basic_resolver_entry;
0214
0215 template <typename InternetProtocol>
0216 class basic_resolver_results;
0217
0218 #if !defined(BOOST_ASIO_IP_BASIC_RESOLVER_FWD_DECL)
0219 #define BOOST_ASIO_IP_BASIC_RESOLVER_FWD_DECL
0220
0221 template <typename InternetProtocol, typename Executor = any_io_executor>
0222 class basic_resolver;
0223
0224 #endif
0225
0226 class tcp;
0227
0228 class udp;
0229
0230 }
0231 }
0232 }
0233
0234 #include <boost/asio/detail/pop_options.hpp>
0235
0236 #endif
0237
0238 #endif