diff options
Diffstat (limited to 'boost/asio/socket_base.hpp')
-rw-r--r-- | boost/asio/socket_base.hpp | 129 |
1 files changed, 84 insertions, 45 deletions
diff --git a/boost/asio/socket_base.hpp b/boost/asio/socket_base.hpp index 7adbf5abfd..9c7518e68e 100644 --- a/boost/asio/socket_base.hpp +++ b/boost/asio/socket_base.hpp @@ -76,6 +76,22 @@ public: message_end_of_record = BOOST_ASIO_OS_DEF(MSG_EOR)); #endif + /// Wait types. + /** + * For use with basic_socket::wait() and basic_socket::async_wait(). + */ + enum wait_type + { + /// Wait for a socket to become ready to read. + wait_read, + + /// Wait for a socket to become ready to write. + wait_write, + + /// Wait for a socket to have error conditions pending. + wait_error + }; + /// Socket option to permit sending of broadcast messages. /** * Implements the SOL_SOCKET/SO_BROADCAST socket option. @@ -83,7 +99,7 @@ public: * @par Examples * Setting the option: * @code - * boost::asio::ip::udp::socket socket(io_service); + * boost::asio::ip::udp::socket socket(io_context); * ... * boost::asio::socket_base::broadcast option(true); * socket.set_option(option); @@ -92,7 +108,7 @@ public: * @par * Getting the current option value: * @code - * boost::asio::ip::udp::socket socket(io_service); + * boost::asio::ip::udp::socket socket(io_context); * ... * boost::asio::socket_base::broadcast option; * socket.get_option(option); @@ -117,7 +133,7 @@ public: * @par Examples * Setting the option: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::debug option(true); * socket.set_option(option); @@ -126,7 +142,7 @@ public: * @par * Getting the current option value: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::debug option; * socket.get_option(option); @@ -150,7 +166,7 @@ public: * @par Examples * Setting the option: * @code - * boost::asio::ip::udp::socket socket(io_service); + * boost::asio::ip::udp::socket socket(io_context); * ... * boost::asio::socket_base::do_not_route option(true); * socket.set_option(option); @@ -159,7 +175,7 @@ public: * @par * Getting the current option value: * @code - * boost::asio::ip::udp::socket socket(io_service); + * boost::asio::ip::udp::socket socket(io_context); * ... * boost::asio::socket_base::do_not_route option; * socket.get_option(option); @@ -184,7 +200,7 @@ public: * @par Examples * Setting the option: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::keep_alive option(true); * socket.set_option(option); @@ -193,7 +209,7 @@ public: * @par * Getting the current option value: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::keep_alive option; * socket.get_option(option); @@ -217,7 +233,7 @@ public: * @par Examples * Setting the option: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::send_buffer_size option(8192); * socket.set_option(option); @@ -226,7 +242,7 @@ public: * @par * Getting the current option value: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::send_buffer_size option; * socket.get_option(option); @@ -251,7 +267,7 @@ public: * @par Examples * Setting the option: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::send_low_watermark option(1024); * socket.set_option(option); @@ -260,7 +276,7 @@ public: * @par * Getting the current option value: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::send_low_watermark option; * socket.get_option(option); @@ -285,7 +301,7 @@ public: * @par Examples * Setting the option: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::receive_buffer_size option(8192); * socket.set_option(option); @@ -294,7 +310,7 @@ public: * @par * Getting the current option value: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::receive_buffer_size option; * socket.get_option(option); @@ -319,7 +335,7 @@ public: * @par Examples * Setting the option: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::receive_low_watermark option(1024); * socket.set_option(option); @@ -328,7 +344,7 @@ public: * @par * Getting the current option value: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::receive_low_watermark option; * socket.get_option(option); @@ -354,7 +370,7 @@ public: * @par Examples * Setting the option: * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); + * boost::asio::ip::tcp::acceptor acceptor(io_context); * ... * boost::asio::socket_base::reuse_address option(true); * acceptor.set_option(option); @@ -363,7 +379,7 @@ public: * @par * Getting the current option value: * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); + * boost::asio::ip::tcp::acceptor acceptor(io_context); * ... * boost::asio::socket_base::reuse_address option; * acceptor.get_option(option); @@ -389,7 +405,7 @@ public: * @par Examples * Setting the option: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::linger option(true, 30); * socket.set_option(option); @@ -398,7 +414,7 @@ public: * @par * Getting the current option value: * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::linger option; * socket.get_option(option); @@ -417,6 +433,40 @@ public: linger; #endif + /// Socket option for putting received out-of-band data inline. + /** + * Implements the SOL_SOCKET/SO_OOBINLINE socket option. + * + * @par Examples + * Setting the option: + * @code + * boost::asio::ip::tcp::socket socket(io_context); + * ... + * boost::asio::socket_base::out_of_band_inline option(true); + * socket.set_option(option); + * @endcode + * + * @par + * Getting the current option value: + * @code + * boost::asio::ip::tcp::socket socket(io_context); + * ... + * boost::asio::socket_base::out_of_band_inline option; + * socket.get_option(option); + * bool value = option.value(); + * @endcode + * + * @par Concepts: + * Socket_Option, Boolean_Socket_Option. + */ +#if defined(GENERATING_DOCUMENTATION) + typedef implementation_defined out_of_band_inline; +#else + typedef boost::asio::detail::socket_option::boolean< + BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_OOBINLINE)> + out_of_band_inline; +#endif + /// Socket option to report aborted connections on accept. /** * Implements a custom socket option that determines whether or not an accept @@ -426,7 +476,7 @@ public: * @par Examples * Setting the option: * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); + * boost::asio::ip::tcp::acceptor acceptor(io_context); * ... * boost::asio::socket_base::enable_connection_aborted option(true); * acceptor.set_option(option); @@ -435,7 +485,7 @@ public: * @par * Getting the current option value: * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); + * boost::asio::ip::tcp::acceptor acceptor(io_context); * ... * boost::asio::socket_base::enable_connection_aborted option; * acceptor.get_option(option); @@ -454,28 +504,6 @@ public: enable_connection_aborted; #endif - /// (Deprecated: Use non_blocking().) IO control command to - /// set the blocking mode of the socket. - /** - * Implements the FIONBIO IO control command. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::non_blocking_io command(true); - * socket.io_control(command); - * @endcode - * - * @par Concepts: - * IO_Control_Command, Boolean_IO_Control_Command. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined non_blocking_io; -#else - typedef boost::asio::detail::io_control::non_blocking_io non_blocking_io; -#endif - /// IO control command to get the amount of data that can be read without /// blocking. /** @@ -483,7 +511,7 @@ public: * * @par Example * @code - * boost::asio::ip::tcp::socket socket(io_service); + * boost::asio::ip::tcp::socket socket(io_context); * ... * boost::asio::socket_base::bytes_readable command(true); * socket.io_control(command); @@ -501,11 +529,22 @@ public: /// The maximum length of the queue of pending incoming connections. #if defined(GENERATING_DOCUMENTATION) + static const int max_listen_connections = implementation_defined; +#else + BOOST_ASIO_STATIC_CONSTANT(int, max_listen_connections + = BOOST_ASIO_OS_DEF(SOMAXCONN)); +#endif + +#if !defined(BOOST_ASIO_NO_DEPRECATED) + /// (Deprecated: Use max_listen_connections.) The maximum length of the queue + /// of pending incoming connections. +#if defined(GENERATING_DOCUMENTATION) static const int max_connections = implementation_defined; #else BOOST_ASIO_STATIC_CONSTANT(int, max_connections = BOOST_ASIO_OS_DEF(SOMAXCONN)); #endif +#endif // !defined(BOOST_ASIO_NO_DEPRECATED) protected: /// Protected destructor to prevent deletion through this type. |