Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:29:03

0001 //
0002 // ts/netfwd.hpp
0003 // ~~~~~~~~~~~~~
0004 //
0005 // Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
0006 //
0007 // Distributed under the Boost Software License, Version 1.0. (See accompanying
0008 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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 // defined(_MSC_VER) && (_MSC_VER >= 1200)
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 // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
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 // !defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
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 // !defined(BOOST_ASIO_EXECUTOR_WORK_GUARD_DECL)
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 // defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
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 // !defined(BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL)
0071 
0072 template <typename U>
0073 struct context_as_t;
0074 
0075 template <typename Property>
0076 struct prefer_only;
0077 
0078 } // namespace execution
0079 
0080 class any_io_executor;
0081 
0082 #endif // defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
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 // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
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 // !defined(BOOST_ASIO_BASIC_WAITABLE_TIMER_FWD_DECL)
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 // !defined(BOOST_ASIO_BASIC_SOCKET_FWD_DECL)
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 // !defined(BOOST_ASIO_BASIC_DATAGRAM_SOCKET_FWD_DECL)
0131 
0132 #if !defined(BOOST_ASIO_BASIC_STREAM_SOCKET_FWD_DECL)
0133 #define BOOST_ASIO_BASIC_STREAM_SOCKET_FWD_DECL
0134 
0135 // Forward declaration with defaulted arguments.
0136 template <typename Protocol, typename Executor = any_io_executor>
0137 class basic_stream_socket;
0138 
0139 #endif // !defined(BOOST_ASIO_BASIC_STREAM_SOCKET_FWD_DECL)
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 // !defined(BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL)
0148 
0149 #if !defined(BOOST_ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL)
0150 #define BOOST_ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL
0151 
0152 // Forward declaration with defaulted arguments.
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 // !defined(BOOST_ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL)
0165 
0166 #if !defined(BOOST_ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL)
0167 #define BOOST_ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL
0168 
0169 // Forward declaration with defaulted arguments.
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 // !defined(BOOST_ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL)
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 // !defined(BOOST_ASIO_IP_BASIC_RESOLVER_FWD_DECL)
0225 
0226 class tcp;
0227 
0228 class udp;
0229 
0230 } // namespace ip
0231 } // namespace asio
0232 } // namespace boost
0233 
0234 #include <boost/asio/detail/pop_options.hpp>
0235 
0236 #endif // !defined(GENERATING_DOCUMENTATION)
0237 
0238 #endif // BOOST_ASIO_TS_NETFWD_HPP