// // ts/netfwd.hpp // ~~~~~~~~~~~~~ // // Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff 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) // #ifndef BOOST_ASIO_TS_NETFWD_HPP #define BOOST_ASIO_TS_NETFWD_HPP #if defined(_MSC_VER) && (_MSC_VER >= 1200) # pragma once #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) #include #if defined(BOOST_ASIO_HAS_CHRONO) # include #endif // defined(BOOST_ASIO_HAS_CHRONO) #if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) # include #endif // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) #if !defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT) #include #include #include #endif // !defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT) #if !defined(GENERATING_DOCUMENTATION) #include namespace boost { namespace asio { class execution_context; template class executor_binder; #if !defined(BOOST_ASIO_EXECUTOR_WORK_GUARD_DECL) #define BOOST_ASIO_EXECUTOR_WORK_GUARD_DECL template class executor_work_guard; #endif // !defined(BOOST_ASIO_EXECUTOR_WORK_GUARD_DECL) template class basic_system_executor; #if defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT) class executor; typedef executor any_io_executor; #else // defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT) namespace execution { #if !defined(BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL) #define BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) template class any_executor; #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) template class any_executor; #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) #endif // !defined(BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL) template struct context_as_t; template struct prefer_only; } // namespace execution class any_io_executor; #endif // defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT) template class strand; class io_context; template struct wait_traits; #if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) template struct time_traits; #endif // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) #if !defined(BOOST_ASIO_BASIC_WAITABLE_TIMER_FWD_DECL) #define BOOST_ASIO_BASIC_WAITABLE_TIMER_FWD_DECL template , typename Executor = any_io_executor> class basic_waitable_timer; #endif // !defined(BOOST_ASIO_BASIC_WAITABLE_TIMER_FWD_DECL) #if defined(BOOST_ASIO_HAS_CHRONO) typedef basic_waitable_timer system_timer; typedef basic_waitable_timer steady_timer; typedef basic_waitable_timer high_resolution_timer; #endif // defined(BOOST_ASIO_HAS_CHRONO) #if !defined(BOOST_ASIO_BASIC_SOCKET_FWD_DECL) #define BOOST_ASIO_BASIC_SOCKET_FWD_DECL template class basic_socket; #endif // !defined(BOOST_ASIO_BASIC_SOCKET_FWD_DECL) #if !defined(BOOST_ASIO_BASIC_DATAGRAM_SOCKET_FWD_DECL) #define BOOST_ASIO_BASIC_DATAGRAM_SOCKET_FWD_DECL template class basic_datagram_socket; #endif // !defined(BOOST_ASIO_BASIC_DATAGRAM_SOCKET_FWD_DECL) #if !defined(BOOST_ASIO_BASIC_STREAM_SOCKET_FWD_DECL) #define BOOST_ASIO_BASIC_STREAM_SOCKET_FWD_DECL // Forward declaration with defaulted arguments. template class basic_stream_socket; #endif // !defined(BOOST_ASIO_BASIC_STREAM_SOCKET_FWD_DECL) #if !defined(BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL) #define BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL template class basic_socket_acceptor; #endif // !defined(BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL) #if !defined(BOOST_ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL) #define BOOST_ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL // Forward declaration with defaulted arguments. template > #else typename Clock = chrono::steady_clock, typename WaitTraits = wait_traits > #endif class basic_socket_streambuf; #endif // !defined(BOOST_ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL) #if !defined(BOOST_ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL) #define BOOST_ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL // Forward declaration with defaulted arguments. template > #else typename Clock = chrono::steady_clock, typename WaitTraits = wait_traits > #endif class basic_socket_iostream; #endif // !defined(BOOST_ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL) namespace ip { class address; class address_v4; class address_v6; template class basic_address_iterator; typedef basic_address_iterator address_v4_iterator; typedef basic_address_iterator address_v6_iterator; template class basic_address_range; typedef basic_address_range address_v4_range; typedef basic_address_range address_v6_range; class network_v4; class network_v6; template class basic_endpoint; template class basic_resolver_entry; template class basic_resolver_results; #if !defined(BOOST_ASIO_IP_BASIC_RESOLVER_FWD_DECL) #define BOOST_ASIO_IP_BASIC_RESOLVER_FWD_DECL template class basic_resolver; #endif // !defined(BOOST_ASIO_IP_BASIC_RESOLVER_FWD_DECL) class tcp; class udp; } // namespace ip } // namespace asio } // namespace boost #include #endif // !defined(GENERATING_DOCUMENTATION) #endif // BOOST_ASIO_TS_NETFWD_HPP