summaryrefslogtreecommitdiff
path: root/libs/asio
diff options
context:
space:
mode:
authorChanho Park <chanho61.park@samsung.com>2014-12-11 18:55:56 +0900
committerChanho Park <chanho61.park@samsung.com>2014-12-11 18:55:56 +0900
commit08c1e93fa36a49f49325a07fe91ff92c964c2b6c (patch)
tree7a7053ceb8874b28ec4b868d4c49b500008a102e /libs/asio
parentbb4dd8289b351fae6b55e303f189127a394a1edd (diff)
downloadboost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.tar.gz
boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.tar.bz2
boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.zip
Imported Upstream version 1.57.0upstream/1.57.0
Diffstat (limited to 'libs/asio')
-rw-r--r--libs/asio/doc/Jamfile.v213
-rw-r--r--libs/asio/doc/asio.qbk5
-rw-r--r--libs/asio/doc/doxy2qbk.pl2
-rw-r--r--libs/asio/doc/examples.qbk348
-rw-r--r--libs/asio/doc/history.qbk249
-rw-r--r--libs/asio/doc/index.xml2
-rw-r--r--libs/asio/doc/noncopyable_dox.txt2
-rw-r--r--libs/asio/doc/overview.qbk12
-rw-r--r--libs/asio/doc/overview/allocation.qbk5
-rw-r--r--libs/asio/doc/overview/async.qbk2
-rw-r--r--libs/asio/doc/overview/basics.qbk2
-rw-r--r--libs/asio/doc/overview/bsd_sockets.qbk2
-rw-r--r--libs/asio/doc/overview/buffers.qbk5
-rw-r--r--libs/asio/doc/overview/coroutine.qbk51
-rw-r--r--libs/asio/doc/overview/cpp2011.qbk37
-rw-r--r--libs/asio/doc/overview/handler_tracking.qbk2
-rw-r--r--libs/asio/doc/overview/implementation.qbk46
-rw-r--r--libs/asio/doc/overview/iostreams.qbk4
-rw-r--r--libs/asio/doc/overview/line_based.qbk4
-rw-r--r--libs/asio/doc/overview/other_protocols.qbk94
-rw-r--r--libs/asio/doc/overview/posix.qbk11
-rw-r--r--libs/asio/doc/overview/protocols.qbk10
-rw-r--r--libs/asio/doc/overview/rationale.qbk2
-rw-r--r--libs/asio/doc/overview/reactor.qbk4
-rw-r--r--libs/asio/doc/overview/serial_ports.qbk4
-rw-r--r--libs/asio/doc/overview/signals.qbk5
-rw-r--r--libs/asio/doc/overview/spawn.qbk102
-rw-r--r--libs/asio/doc/overview/ssl.qbk4
-rw-r--r--libs/asio/doc/overview/strands.qbk4
-rw-r--r--libs/asio/doc/overview/streams.qbk2
-rw-r--r--libs/asio/doc/overview/threads.qbk2
-rw-r--r--libs/asio/doc/overview/timers.qbk2
-rw-r--r--libs/asio/doc/overview/windows.qbk2
-rw-r--r--libs/asio/doc/quickref.xml36
-rw-r--r--libs/asio/doc/reference.dox7
-rw-r--r--libs/asio/doc/reference.qbk11032
-rw-r--r--libs/asio/doc/reference.xsl75
-rw-r--r--libs/asio/doc/requirements.qbk2
-rw-r--r--libs/asio/doc/requirements/AcceptHandler.qbk2
-rw-r--r--libs/asio/doc/requirements/AsyncRandomAccessReadDevice.qbk2
-rw-r--r--libs/asio/doc/requirements/AsyncRandomAccessWriteDevice.qbk2
-rw-r--r--libs/asio/doc/requirements/AsyncReadStream.qbk2
-rw-r--r--libs/asio/doc/requirements/AsyncWriteStream.qbk2
-rw-r--r--libs/asio/doc/requirements/BufferedHandshakeHandler.qbk54
-rw-r--r--libs/asio/doc/requirements/CompletionHandler.qbk2
-rw-r--r--libs/asio/doc/requirements/ComposedConnectHandler.qbk2
-rw-r--r--libs/asio/doc/requirements/ConnectHandler.qbk2
-rw-r--r--libs/asio/doc/requirements/ConstBufferSequence.qbk2
-rw-r--r--libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk2
-rw-r--r--libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk2
-rw-r--r--libs/asio/doc/requirements/DatagramSocketService.qbk2
-rw-r--r--libs/asio/doc/requirements/DescriptorService.qbk2
-rw-r--r--libs/asio/doc/requirements/Endpoint.qbk2
-rw-r--r--libs/asio/doc/requirements/GettableSerialPortOption.qbk2
-rw-r--r--libs/asio/doc/requirements/GettableSocketOption.qbk2
-rw-r--r--libs/asio/doc/requirements/HandleService.qbk2
-rw-r--r--libs/asio/doc/requirements/Handler.qbk2
-rw-r--r--libs/asio/doc/requirements/HandshakeHandler.qbk2
-rw-r--r--libs/asio/doc/requirements/InternetProtocol.qbk2
-rw-r--r--libs/asio/doc/requirements/IoControlCommand.qbk2
-rw-r--r--libs/asio/doc/requirements/IoObjectService.qbk2
-rw-r--r--libs/asio/doc/requirements/MutableBufferSequence.qbk2
-rw-r--r--libs/asio/doc/requirements/ObjectHandleService.qbk2
-rw-r--r--libs/asio/doc/requirements/Protocol.qbk2
-rw-r--r--libs/asio/doc/requirements/RandomAccessHandleService.qbk2
-rw-r--r--libs/asio/doc/requirements/RawSocketService.qbk2
-rw-r--r--libs/asio/doc/requirements/ReadHandler.qbk2
-rw-r--r--libs/asio/doc/requirements/ResolveHandler.qbk2
-rw-r--r--libs/asio/doc/requirements/ResolverService.qbk2
-rw-r--r--libs/asio/doc/requirements/SeqPacketSocketService.qbk2
-rw-r--r--libs/asio/doc/requirements/SerialPortService.qbk2
-rw-r--r--libs/asio/doc/requirements/Service.qbk2
-rw-r--r--libs/asio/doc/requirements/SettableSerialPortOption.qbk2
-rw-r--r--libs/asio/doc/requirements/SettableSocketOption.qbk2
-rw-r--r--libs/asio/doc/requirements/ShutdownHandler.qbk2
-rw-r--r--libs/asio/doc/requirements/SignalHandler.qbk2
-rw-r--r--libs/asio/doc/requirements/SignalSetService.qbk2
-rw-r--r--libs/asio/doc/requirements/SocketAcceptorService.qbk2
-rw-r--r--libs/asio/doc/requirements/SocketService.qbk2
-rw-r--r--libs/asio/doc/requirements/StreamDescriptorService.qbk2
-rw-r--r--libs/asio/doc/requirements/StreamHandleService.qbk2
-rw-r--r--libs/asio/doc/requirements/StreamSocketService.qbk2
-rw-r--r--libs/asio/doc/requirements/SyncRandomAccessReadDevice.qbk2
-rw-r--r--libs/asio/doc/requirements/SyncRandomAccessWriteDevice.qbk2
-rw-r--r--libs/asio/doc/requirements/SyncReadStream.qbk2
-rw-r--r--libs/asio/doc/requirements/SyncWriteStream.qbk2
-rw-r--r--libs/asio/doc/requirements/TimeTraits.qbk2
-rw-r--r--libs/asio/doc/requirements/TimerService.qbk2
-rw-r--r--libs/asio/doc/requirements/WaitHandler.qbk2
-rw-r--r--libs/asio/doc/requirements/WaitTraits.qbk2
-rw-r--r--libs/asio/doc/requirements/WaitableTimerService.qbk2
-rw-r--r--libs/asio/doc/requirements/WriteHandler.qbk2
-rw-r--r--libs/asio/doc/requirements/asynchronous_operations.qbk43
-rw-r--r--libs/asio/doc/std_exception_dox.txt2
-rw-r--r--libs/asio/doc/tutorial.dox6
-rw-r--r--libs/asio/doc/tutorial.qbk30
-rw-r--r--libs/asio/doc/tutorial.xsl4
-rw-r--r--libs/asio/doc/using.qbk2
-rw-r--r--libs/asio/example/cpp03/allocation/Jamfile (renamed from libs/asio/example/allocation/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/allocation/Jamfile.v2 (renamed from libs/asio/example/allocation/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/allocation/server.cpp (renamed from libs/asio/example/allocation/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/buffers/Jamfile (renamed from libs/asio/example/buffers/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/buffers/Jamfile.v2 (renamed from libs/asio/example/buffers/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/buffers/reference_counted.cpp (renamed from libs/asio/example/buffers/reference_counted.cpp)2
-rw-r--r--libs/asio/example/cpp03/chat/Jamfile (renamed from libs/asio/example/chat/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/chat/Jamfile.v2 (renamed from libs/asio/example/chat/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/chat/chat_client.cpp (renamed from libs/asio/example/chat/chat_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/chat/chat_message.hpp (renamed from libs/asio/example/chat/chat_message.hpp)4
-rw-r--r--libs/asio/example/cpp03/chat/chat_server.cpp (renamed from libs/asio/example/chat/chat_server.cpp)2
-rw-r--r--libs/asio/example/cpp03/chat/posix_chat_client.cpp (renamed from libs/asio/example/chat/posix_chat_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/echo/Jamfile (renamed from libs/asio/example/echo/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/echo/Jamfile.v2 (renamed from libs/asio/example/echo/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/echo/async_tcp_echo_server.cpp (renamed from libs/asio/example/echo/async_tcp_echo_server.cpp)2
-rw-r--r--libs/asio/example/cpp03/echo/async_udp_echo_server.cpp (renamed from libs/asio/example/echo/async_udp_echo_server.cpp)6
-rw-r--r--libs/asio/example/cpp03/echo/blocking_tcp_echo_client.cpp (renamed from libs/asio/example/echo/blocking_tcp_echo_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/echo/blocking_tcp_echo_server.cpp (renamed from libs/asio/example/echo/blocking_tcp_echo_server.cpp)4
-rw-r--r--libs/asio/example/cpp03/echo/blocking_udp_echo_client.cpp (renamed from libs/asio/example/echo/blocking_udp_echo_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/echo/blocking_udp_echo_server.cpp (renamed from libs/asio/example/echo/blocking_udp_echo_server.cpp)4
-rw-r--r--libs/asio/example/cpp03/fork/Jamfile (renamed from libs/asio/example/fork/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/fork/Jamfile.v2 (renamed from libs/asio/example/fork/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/fork/daemon.cpp (renamed from libs/asio/example/fork/daemon.cpp)2
-rw-r--r--libs/asio/example/cpp03/fork/process_per_connection.cpp (renamed from libs/asio/example/fork/process_per_connection.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/client/Jamfile (renamed from libs/asio/example/http/client/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/http/client/Jamfile.v2 (renamed from libs/asio/example/http/client/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/http/client/async_client.cpp (renamed from libs/asio/example/http/client/async_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/client/sync_client.cpp (renamed from libs/asio/example/http/client/sync_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/doc_root/data_1K.html (renamed from libs/asio/example/http/doc_root/data_1K.html)2
-rw-r--r--libs/asio/example/cpp03/http/doc_root/data_2K.html (renamed from libs/asio/example/http/doc_root/data_2K.html)2
-rw-r--r--libs/asio/example/cpp03/http/doc_root/data_4K.html (renamed from libs/asio/example/http/doc_root/data_4K.html)2
-rw-r--r--libs/asio/example/cpp03/http/doc_root/data_8K.html (renamed from libs/asio/example/http/doc_root/data_8K.html)2
-rw-r--r--libs/asio/example/cpp03/http/server/Jamfile (renamed from libs/asio/example/http/server/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/http/server/Jamfile.v2 (renamed from libs/asio/example/http/server/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/http/server/connection.cpp (renamed from libs/asio/example/http/server/connection.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/connection.hpp (renamed from libs/asio/example/http/server/connection.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/connection_manager.cpp (renamed from libs/asio/example/http/server/connection_manager.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/connection_manager.hpp (renamed from libs/asio/example/http/server/connection_manager.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/header.hpp (renamed from libs/asio/example/http/server/header.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/main.cpp (renamed from libs/asio/example/http/server/main.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/mime_types.cpp (renamed from libs/asio/example/http/server/mime_types.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/mime_types.hpp (renamed from libs/asio/example/http/server/mime_types.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/reply.cpp (renamed from libs/asio/example/http/server/reply.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/reply.hpp (renamed from libs/asio/example/http/server/reply.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/request.hpp (renamed from libs/asio/example/http/server/request.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/request_handler.cpp (renamed from libs/asio/example/http/server/request_handler.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/request_handler.hpp (renamed from libs/asio/example/http/server/request_handler.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/request_parser.cpp (renamed from libs/asio/example/http/server/request_parser.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/request_parser.hpp (renamed from libs/asio/example/http/server/request_parser.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/server.cpp (renamed from libs/asio/example/http/server/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server/server.hpp (renamed from libs/asio/example/http/server/server.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/Jamfile (renamed from libs/asio/example/http/server2/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/http/server2/Jamfile.v2 (renamed from libs/asio/example/http/server2/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/http/server2/connection.cpp (renamed from libs/asio/example/http/server2/connection.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/connection.hpp (renamed from libs/asio/example/http/server2/connection.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/header.hpp (renamed from libs/asio/example/http/server2/header.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/io_service_pool.cpp (renamed from libs/asio/example/http/server2/io_service_pool.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/io_service_pool.hpp (renamed from libs/asio/example/http/server2/io_service_pool.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/main.cpp (renamed from libs/asio/example/http/server2/main.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/mime_types.cpp (renamed from libs/asio/example/http/server2/mime_types.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/mime_types.hpp (renamed from libs/asio/example/http/server2/mime_types.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/reply.cpp (renamed from libs/asio/example/http/server2/reply.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/reply.hpp (renamed from libs/asio/example/http/server2/reply.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/request.hpp (renamed from libs/asio/example/http/server2/request.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/request_handler.cpp (renamed from libs/asio/example/http/server2/request_handler.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/request_handler.hpp (renamed from libs/asio/example/http/server2/request_handler.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/request_parser.cpp (renamed from libs/asio/example/http/server2/request_parser.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/request_parser.hpp (renamed from libs/asio/example/http/server2/request_parser.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/server.cpp (renamed from libs/asio/example/http/server2/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server2/server.hpp (renamed from libs/asio/example/http/server2/server.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/Jamfile (renamed from libs/asio/example/http/server3/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/http/server3/Jamfile.v2 (renamed from libs/asio/example/http/server3/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/http/server3/connection.cpp (renamed from libs/asio/example/http/server3/connection.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/connection.hpp (renamed from libs/asio/example/http/server3/connection.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/header.hpp (renamed from libs/asio/example/http/server3/header.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/main.cpp (renamed from libs/asio/example/http/server3/main.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/mime_types.cpp (renamed from libs/asio/example/http/server3/mime_types.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/mime_types.hpp (renamed from libs/asio/example/http/server3/mime_types.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/reply.cpp (renamed from libs/asio/example/http/server3/reply.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/reply.hpp (renamed from libs/asio/example/http/server3/reply.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/request.hpp (renamed from libs/asio/example/http/server3/request.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/request_handler.cpp (renamed from libs/asio/example/http/server3/request_handler.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/request_handler.hpp (renamed from libs/asio/example/http/server3/request_handler.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/request_parser.cpp (renamed from libs/asio/example/http/server3/request_parser.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/request_parser.hpp (renamed from libs/asio/example/http/server3/request_parser.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/server.cpp (renamed from libs/asio/example/http/server3/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server3/server.hpp (renamed from libs/asio/example/http/server3/server.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server4/Jamfile (renamed from libs/asio/example/http/server4/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/http/server4/Jamfile.v2 (renamed from libs/asio/example/http/server4/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/http/server4/file_handler.cpp (renamed from libs/asio/example/http/server4/file_handler.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server4/file_handler.hpp (renamed from libs/asio/example/http/server4/file_handler.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server4/header.hpp (renamed from libs/asio/example/http/server4/header.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server4/main.cpp (renamed from libs/asio/example/http/server4/main.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server4/mime_types.cpp (renamed from libs/asio/example/http/server4/mime_types.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server4/mime_types.hpp (renamed from libs/asio/example/http/server4/mime_types.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server4/reply.cpp (renamed from libs/asio/example/http/server4/reply.cpp)2
-rw-r--r--libs/asio/example/cpp03/http/server4/reply.hpp (renamed from libs/asio/example/http/server4/reply.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server4/request.hpp (renamed from libs/asio/example/http/server4/request.hpp)2
-rw-r--r--libs/asio/example/cpp03/http/server4/request_parser.cpp (renamed from libs/asio/example/http/server4/request_parser.cpp)8
-rw-r--r--libs/asio/example/cpp03/http/server4/request_parser.hpp (renamed from libs/asio/example/http/server4/request_parser.hpp)6
-rw-r--r--libs/asio/example/cpp03/http/server4/server.cpp (renamed from libs/asio/example/http/server4/server.cpp)8
-rw-r--r--libs/asio/example/cpp03/http/server4/server.hpp (renamed from libs/asio/example/http/server4/server.hpp)5
-rw-r--r--libs/asio/example/cpp03/icmp/Jamfile (renamed from libs/asio/example/icmp/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/icmp/Jamfile.v2 (renamed from libs/asio/example/icmp/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/icmp/icmp_header.hpp (renamed from libs/asio/example/icmp/icmp_header.hpp)2
-rw-r--r--libs/asio/example/cpp03/icmp/ipv4_header.hpp (renamed from libs/asio/example/icmp/ipv4_header.hpp)2
-rw-r--r--libs/asio/example/cpp03/icmp/ping.cpp (renamed from libs/asio/example/icmp/ping.cpp)6
-rw-r--r--libs/asio/example/cpp03/invocation/Jamfile (renamed from libs/asio/example/invocation/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/invocation/Jamfile.v2 (renamed from libs/asio/example/invocation/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/invocation/prioritised_handlers.cpp (renamed from libs/asio/example/invocation/prioritised_handlers.cpp)2
-rw-r--r--libs/asio/example/cpp03/iostreams/Jamfile (renamed from libs/asio/example/iostreams/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/iostreams/Jamfile.v2 (renamed from libs/asio/example/iostreams/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/iostreams/daytime_client.cpp (renamed from libs/asio/example/iostreams/daytime_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/iostreams/daytime_server.cpp (renamed from libs/asio/example/iostreams/daytime_server.cpp)2
-rw-r--r--libs/asio/example/cpp03/iostreams/http_client.cpp (renamed from libs/asio/example/iostreams/http_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/local/Jamfile (renamed from libs/asio/example/local/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/local/Jamfile.v2 (renamed from libs/asio/example/local/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/local/connect_pair.cpp (renamed from libs/asio/example/local/connect_pair.cpp)2
-rw-r--r--libs/asio/example/cpp03/local/iostream_client.cpp (renamed from libs/asio/example/local/iostream_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/local/stream_client.cpp (renamed from libs/asio/example/local/stream_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/local/stream_server.cpp (renamed from libs/asio/example/local/stream_server.cpp)11
-rw-r--r--libs/asio/example/cpp03/multicast/Jamfile (renamed from libs/asio/example/multicast/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/multicast/Jamfile.v2 (renamed from libs/asio/example/multicast/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/multicast/receiver.cpp (renamed from libs/asio/example/multicast/receiver.cpp)2
-rw-r--r--libs/asio/example/cpp03/multicast/sender.cpp (renamed from libs/asio/example/multicast/sender.cpp)2
-rw-r--r--libs/asio/example/cpp03/nonblocking/Jamfile (renamed from libs/asio/example/nonblocking/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/nonblocking/Jamfile.v2 (renamed from libs/asio/example/nonblocking/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/nonblocking/third_party_lib.cpp (renamed from libs/asio/example/nonblocking/third_party_lib.cpp)2
-rw-r--r--libs/asio/example/cpp03/porthopper/Jamfile (renamed from libs/asio/example/porthopper/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/porthopper/Jamfile.v2 (renamed from libs/asio/example/porthopper/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/porthopper/client.cpp (renamed from libs/asio/example/porthopper/client.cpp)2
-rw-r--r--libs/asio/example/cpp03/porthopper/protocol.hpp (renamed from libs/asio/example/porthopper/protocol.hpp)2
-rw-r--r--libs/asio/example/cpp03/porthopper/server.cpp (renamed from libs/asio/example/porthopper/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/serialization/Jamfile (renamed from libs/asio/example/serialization/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/serialization/Jamfile.v2 (renamed from libs/asio/example/serialization/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/serialization/client.cpp (renamed from libs/asio/example/serialization/client.cpp)2
-rw-r--r--libs/asio/example/cpp03/serialization/connection.hpp (renamed from libs/asio/example/serialization/connection.hpp)2
-rw-r--r--libs/asio/example/cpp03/serialization/server.cpp (renamed from libs/asio/example/serialization/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/serialization/stock.hpp (renamed from libs/asio/example/serialization/stock.hpp)2
-rw-r--r--libs/asio/example/cpp03/services/Jamfile (renamed from libs/asio/example/services/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/services/Jamfile.v2 (renamed from libs/asio/example/services/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/services/basic_logger.hpp (renamed from libs/asio/example/services/basic_logger.hpp)2
-rw-r--r--libs/asio/example/cpp03/services/daytime_client.cpp (renamed from libs/asio/example/services/daytime_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/services/logger.hpp (renamed from libs/asio/example/services/logger.hpp)2
-rw-r--r--libs/asio/example/cpp03/services/logger_service.cpp (renamed from libs/asio/example/services/logger_service.cpp)2
-rw-r--r--libs/asio/example/cpp03/services/logger_service.hpp (renamed from libs/asio/example/services/logger_service.hpp)2
-rw-r--r--libs/asio/example/cpp03/services/stream_socket_service.hpp (renamed from libs/asio/example/services/stream_socket_service.hpp)2
-rw-r--r--libs/asio/example/cpp03/socks4/Jamfile (renamed from libs/asio/example/socks4/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/socks4/Jamfile.v2 (renamed from libs/asio/example/socks4/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/socks4/socks4.hpp (renamed from libs/asio/example/socks4/socks4.hpp)2
-rw-r--r--libs/asio/example/cpp03/socks4/sync_client.cpp (renamed from libs/asio/example/socks4/sync_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/spawn/Jamfile.v240
-rw-r--r--libs/asio/example/cpp03/spawn/echo_server.cpp122
-rw-r--r--libs/asio/example/cpp03/ssl/Jamfile (renamed from libs/asio/example/ssl/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/ssl/Jamfile.v2 (renamed from libs/asio/example/ssl/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/ssl/README (renamed from libs/asio/example/ssl/README)2
-rw-r--r--libs/asio/example/cpp03/ssl/ca.pem (renamed from libs/asio/example/ssl/ca.pem)0
-rw-r--r--libs/asio/example/cpp03/ssl/client.cpp (renamed from libs/asio/example/ssl/client.cpp)2
-rw-r--r--libs/asio/example/cpp03/ssl/dh512.pem (renamed from libs/asio/example/ssl/dh512.pem)0
-rw-r--r--libs/asio/example/cpp03/ssl/server.cpp (renamed from libs/asio/example/ssl/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/ssl/server.pem (renamed from libs/asio/example/ssl/server.pem)0
-rw-r--r--libs/asio/example/cpp03/timeouts/Jamfile (renamed from libs/asio/example/timeouts/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/timeouts/Jamfile.v2 (renamed from libs/asio/example/timeouts/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/timeouts/async_tcp_client.cpp (renamed from libs/asio/example/timeouts/async_tcp_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/timeouts/blocking_tcp_client.cpp (renamed from libs/asio/example/timeouts/blocking_tcp_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/timeouts/blocking_udp_client.cpp (renamed from libs/asio/example/timeouts/blocking_udp_client.cpp)2
-rw-r--r--libs/asio/example/cpp03/timeouts/server.cpp (renamed from libs/asio/example/timeouts/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/timers/Jamfile (renamed from libs/asio/example/timers/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/timers/Jamfile.v2 (renamed from libs/asio/example/timers/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/timers/tick_count_timer.cpp (renamed from libs/asio/example/timers/tick_count_timer.cpp)2
-rw-r--r--libs/asio/example/cpp03/timers/time_t_timer.cpp (renamed from libs/asio/example/timers/time_t_timer.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/Jamfile (renamed from libs/asio/example/tutorial/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/tutorial/Jamfile.v2 (renamed from libs/asio/example/tutorial/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/tutorial/daytime1/client.cpp (renamed from libs/asio/example/tutorial/daytime1/client.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/daytime2/server.cpp (renamed from libs/asio/example/tutorial/daytime2/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/daytime3/server.cpp (renamed from libs/asio/example/tutorial/daytime3/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/daytime4/client.cpp (renamed from libs/asio/example/tutorial/daytime4/client.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/daytime5/server.cpp (renamed from libs/asio/example/tutorial/daytime5/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/daytime6/server.cpp (renamed from libs/asio/example/tutorial/daytime6/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/daytime7/server.cpp (renamed from libs/asio/example/tutorial/daytime7/server.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/daytime_dox.txt (renamed from libs/asio/example/tutorial/daytime_dox.txt)2
-rw-r--r--libs/asio/example/cpp03/tutorial/index_dox.txt (renamed from libs/asio/example/tutorial/index_dox.txt)2
-rw-r--r--libs/asio/example/cpp03/tutorial/timer1/timer.cpp (renamed from libs/asio/example/tutorial/timer1/timer.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/timer2/timer.cpp (renamed from libs/asio/example/tutorial/timer2/timer.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/timer3/timer.cpp (renamed from libs/asio/example/tutorial/timer3/timer.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/timer4/timer.cpp (renamed from libs/asio/example/tutorial/timer4/timer.cpp)2
-rw-r--r--libs/asio/example/cpp03/tutorial/timer5/timer.cpp (renamed from libs/asio/example/tutorial/timer5/timer.cpp)4
-rw-r--r--libs/asio/example/cpp03/tutorial/timer_dox.txt (renamed from libs/asio/example/tutorial/timer_dox.txt)2
-rw-r--r--libs/asio/example/cpp03/windows/Jamfile (renamed from libs/asio/example/windows/Jamfile)2
-rw-r--r--libs/asio/example/cpp03/windows/Jamfile.v2 (renamed from libs/asio/example/windows/Jamfile.v2)2
-rw-r--r--libs/asio/example/cpp03/windows/transmit_file.cpp (renamed from libs/asio/example/windows/transmit_file.cpp)2
-rw-r--r--libs/asio/example/cpp11/allocation/Jamfile33
-rw-r--r--libs/asio/example/cpp11/allocation/Jamfile.v238
-rw-r--r--libs/asio/example/cpp11/allocation/server.cpp215
-rw-r--r--libs/asio/example/cpp11/buffers/Jamfile33
-rw-r--r--libs/asio/example/cpp11/buffers/Jamfile.v238
-rw-r--r--libs/asio/example/cpp11/buffers/reference_counted.cpp123
-rw-r--r--libs/asio/example/cpp11/chat/Jamfile47
-rw-r--r--libs/asio/example/cpp11/chat/Jamfile.v242
-rw-r--r--libs/asio/example/cpp11/chat/chat_client.cpp167
-rw-r--r--libs/asio/example/cpp11/chat/chat_message.hpp91
-rw-r--r--libs/asio/example/cpp11/chat/chat_server.cpp229
-rw-r--r--libs/asio/example/cpp11/echo/Jamfile63
-rw-r--r--libs/asio/example/cpp11/echo/Jamfile.v246
-rw-r--r--libs/asio/example/cpp11/echo/async_tcp_echo_server.cpp116
-rw-r--r--libs/asio/example/cpp11/echo/async_udp_echo_server.cpp82
-rw-r--r--libs/asio/example/cpp11/echo/blocking_tcp_echo_client.cpp55
-rw-r--r--libs/asio/example/cpp11/echo/blocking_tcp_echo_server.cpp76
-rw-r--r--libs/asio/example/cpp11/echo/blocking_udp_echo_client.cpp57
-rw-r--r--libs/asio/example/cpp11/echo/blocking_udp_echo_server.cpp52
-rw-r--r--libs/asio/example/cpp11/futures/Jamfile33
-rw-r--r--libs/asio/example/cpp11/futures/Jamfile.v238
-rw-r--r--libs/asio/example/cpp11/futures/daytime_client.cpp94
-rw-r--r--libs/asio/example/cpp11/http/server/Jamfile41
-rw-r--r--libs/asio/example/cpp11/http/server/Jamfile.v246
-rw-r--r--libs/asio/example/cpp11/http/server/connection.cpp94
-rw-r--r--libs/asio/example/cpp11/http/server/connection.hpp79
-rw-r--r--libs/asio/example/cpp11/http/server/connection_manager.cpp40
-rw-r--r--libs/asio/example/cpp11/http/server/connection_manager.hpp48
-rw-r--r--libs/asio/example/cpp11/http/server/header.hpp28
-rw-r--r--libs/asio/example/cpp11/http/server/main.cpp43
-rw-r--r--libs/asio/example/cpp11/http/server/mime_types.cpp45
-rw-r--r--libs/asio/example/cpp11/http/server/mime_types.hpp27
-rw-r--r--libs/asio/example/cpp11/http/server/reply.cpp255
-rw-r--r--libs/asio/example/cpp11/http/server/reply.hpp64
-rw-r--r--libs/asio/example/cpp11/http/server/request.hpp34
-rw-r--r--libs/asio/example/cpp11/http/server/request_handler.cpp121
-rw-r--r--libs/asio/example/cpp11/http/server/request_handler.hpp47
-rw-r--r--libs/asio/example/cpp11/http/server/request_parser.cpp315
-rw-r--r--libs/asio/example/cpp11/http/server/request_parser.hpp96
-rw-r--r--libs/asio/example/cpp11/http/server/server.cpp94
-rw-r--r--libs/asio/example/cpp11/http/server/server.hpp67
-rw-r--r--libs/asio/example/cpp11/spawn/Jamfile.v240
-rw-r--r--libs/asio/example/cpp11/spawn/echo_server.cpp108
-rw-r--r--libs/asio/example/http/server4/coroutine.hpp87
-rw-r--r--libs/asio/example/http/server4/unyield.hpp21
-rw-r--r--libs/asio/example/http/server4/yield.hpp23
-rw-r--r--libs/asio/meta/libraries.json15
-rw-r--r--libs/asio/test/Jamfile12
-rw-r--r--libs/asio/test/Jamfile.v217
-rw-r--r--libs/asio/test/archetypes/async_result.hpp73
-rw-r--r--libs/asio/test/archetypes/gettable_socket_option.hpp2
-rw-r--r--libs/asio/test/archetypes/io_control_command.hpp2
-rw-r--r--libs/asio/test/archetypes/settable_socket_option.hpp2
-rw-r--r--libs/asio/test/basic_datagram_socket.cpp13
-rw-r--r--libs/asio/test/basic_deadline_timer.cpp13
-rw-r--r--libs/asio/test/basic_raw_socket.cpp13
-rw-r--r--libs/asio/test/basic_seq_packet_socket.cpp13
-rw-r--r--libs/asio/test/basic_serial_port.cpp13
-rw-r--r--libs/asio/test/basic_signal_set.cpp13
-rw-r--r--libs/asio/test/basic_socket_acceptor.cpp13
-rw-r--r--libs/asio/test/basic_stream_socket.cpp13
-rw-r--r--libs/asio/test/basic_streambuf.cpp13
-rw-r--r--libs/asio/test/basic_waitable_timer.cpp13
-rw-r--r--libs/asio/test/buffer.cpp26
-rw-r--r--libs/asio/test/buffered_read_stream.cpp190
-rw-r--r--libs/asio/test/buffered_stream.cpp207
-rw-r--r--libs/asio/test/buffered_write_stream.cpp196
-rw-r--r--libs/asio/test/buffers_iterator.cpp26
-rw-r--r--libs/asio/test/completion_condition.cpp13
-rw-r--r--libs/asio/test/connect.cpp13
-rw-r--r--libs/asio/test/coroutine.cpp112
-rw-r--r--libs/asio/test/datagram_socket_service.cpp13
-rw-r--r--libs/asio/test/deadline_timer.cpp95
-rw-r--r--libs/asio/test/deadline_timer_service.cpp13
-rw-r--r--libs/asio/test/error.cpp29
-rw-r--r--libs/asio/test/generic/basic_endpoint.cpp25
-rw-r--r--libs/asio/test/generic/datagram_protocol.cpp256
-rw-r--r--libs/asio/test/generic/raw_protocol.cpp256
-rw-r--r--libs/asio/test/generic/seq_packet_protocol.cpp198
-rw-r--r--libs/asio/test/generic/stream_protocol.cpp241
-rw-r--r--libs/asio/test/high_resolution_timer.cpp13
-rw-r--r--libs/asio/test/io_service.cpp198
-rw-r--r--libs/asio/test/ip/address.cpp14
-rw-r--r--libs/asio/test/ip/address_v4.cpp207
-rw-r--r--libs/asio/test/ip/address_v6.cpp346
-rw-r--r--libs/asio/test/ip/basic_endpoint.cpp13
-rw-r--r--libs/asio/test/ip/basic_resolver.cpp13
-rw-r--r--libs/asio/test/ip/basic_resolver_entry.cpp13
-rw-r--r--libs/asio/test/ip/basic_resolver_iterator.cpp13
-rw-r--r--libs/asio/test/ip/basic_resolver_query.cpp13
-rw-r--r--libs/asio/test/ip/host_name.cpp13
-rw-r--r--libs/asio/test/ip/icmp.cpp462
-rw-r--r--libs/asio/test/ip/multicast.cpp181
-rw-r--r--libs/asio/test/ip/resolver_query_base.cpp13
-rw-r--r--libs/asio/test/ip/resolver_service.cpp13
-rw-r--r--libs/asio/test/ip/tcp.cpp257
-rw-r--r--libs/asio/test/ip/udp.cpp139
-rw-r--r--libs/asio/test/ip/unicast.cpp81
-rw-r--r--libs/asio/test/ip/v6_only.cpp49
-rw-r--r--libs/asio/test/is_read_buffered.cpp32
-rw-r--r--libs/asio/test/is_write_buffered.cpp32
-rw-r--r--libs/asio/test/latency/Jamfile.v22
-rw-r--r--libs/asio/test/latency/allocator.hpp2
-rw-r--r--libs/asio/test/latency/coroutine.hpp2
-rw-r--r--libs/asio/test/latency/high_res_clock.hpp4
-rw-r--r--libs/asio/test/latency/tcp_client.cpp2
-rw-r--r--libs/asio/test/latency/tcp_server.cpp2
-rw-r--r--libs/asio/test/latency/udp_client.cpp2
-rw-r--r--libs/asio/test/latency/udp_server.cpp2
-rw-r--r--libs/asio/test/latency/unyield.hpp2
-rw-r--r--libs/asio/test/latency/yield.hpp2
-rw-r--r--libs/asio/test/local/basic_endpoint.cpp13
-rw-r--r--libs/asio/test/local/connect_pair.cpp13
-rw-r--r--libs/asio/test/local/datagram_protocol.cpp14
-rw-r--r--libs/asio/test/local/stream_protocol.cpp14
-rw-r--r--libs/asio/test/placeholders.cpp13
-rw-r--r--libs/asio/test/posix/basic_descriptor.cpp13
-rw-r--r--libs/asio/test/posix/basic_stream_descriptor.cpp13
-rw-r--r--libs/asio/test/posix/descriptor_base.cpp13
-rw-r--r--libs/asio/test/posix/stream_descriptor.cpp26
-rw-r--r--libs/asio/test/posix/stream_descriptor_service.cpp13
-rw-r--r--libs/asio/test/raw_socket_service.cpp13
-rw-r--r--libs/asio/test/read.cpp2845
-rw-r--r--libs/asio/test/read_at.cpp5427
-rw-r--r--libs/asio/test/read_until.cpp484
-rw-r--r--libs/asio/test/seq_packet_socket_service.cpp13
-rw-r--r--libs/asio/test/serial_port.cpp21
-rw-r--r--libs/asio/test/serial_port_base.cpp13
-rw-r--r--libs/asio/test/serial_port_service.cpp13
-rw-r--r--libs/asio/test/signal_set.cpp17
-rw-r--r--libs/asio/test/signal_set_service.cpp13
-rw-r--r--libs/asio/test/socket_acceptor_service.cpp13
-rw-r--r--libs/asio/test/socket_base.cpp433
-rw-r--r--libs/asio/test/ssl/Jamfile5
-rw-r--r--libs/asio/test/ssl/Jamfile.v23
-rw-r--r--libs/asio/test/ssl/basic_context.cpp13
-rw-r--r--libs/asio/test/ssl/context.cpp13
-rw-r--r--libs/asio/test/ssl/context_base.cpp13
-rw-r--r--libs/asio/test/ssl/context_service.cpp13
-rw-r--r--libs/asio/test/ssl/rfc2818_verification.cpp13
-rw-r--r--libs/asio/test/ssl/stream.cpp72
-rw-r--r--libs/asio/test/ssl/stream_base.cpp13
-rw-r--r--libs/asio/test/ssl/stream_service.cpp13
-rw-r--r--libs/asio/test/steady_timer.cpp13
-rw-r--r--libs/asio/test/strand.cpp123
-rw-r--r--libs/asio/test/stream_socket_service.cpp13
-rw-r--r--libs/asio/test/streambuf.cpp27
-rw-r--r--libs/asio/test/system_timer.cpp338
-rw-r--r--libs/asio/test/time_traits.cpp13
-rw-r--r--libs/asio/test/unit_test.hpp88
-rw-r--r--libs/asio/test/wait_traits.cpp13
-rw-r--r--libs/asio/test/waitable_timer_service.cpp13
-rw-r--r--libs/asio/test/windows/basic_handle.cpp13
-rw-r--r--libs/asio/test/windows/basic_object_handle.cpp13
-rw-r--r--libs/asio/test/windows/basic_random_access_handle.cpp13
-rw-r--r--libs/asio/test/windows/basic_stream_handle.cpp13
-rw-r--r--libs/asio/test/windows/object_handle.cpp18
-rw-r--r--libs/asio/test/windows/object_handle_service.cpp13
-rw-r--r--libs/asio/test/windows/overlapped_ptr.cpp14
-rw-r--r--libs/asio/test/windows/random_access_handle.cpp27
-rw-r--r--libs/asio/test/windows/random_access_handle_service.cpp13
-rw-r--r--libs/asio/test/windows/stream_handle.cpp22
-rw-r--r--libs/asio/test/windows/stream_handle_service.cpp13
-rw-r--r--libs/asio/test/write.cpp3085
-rw-r--r--libs/asio/test/write_at.cpp5978
454 files changed, 27652 insertions, 12793 deletions
diff --git a/libs/asio/doc/Jamfile.v2 b/libs/asio/doc/Jamfile.v2
index 42892592e7..bde1da4f3f 100644
--- a/libs/asio/doc/Jamfile.v2
+++ b/libs/asio/doc/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
@@ -25,10 +25,13 @@ install images
<location>html/boost_asio
;
-local example-names = allocation buffers chat echo fork http/client http/server
- http/server2 http/server3 http/server4 icmp invocation iostreams local
- multicast nonblocking porthopper serialization services socks4 ssl timeouts
- timers windows ;
+local example-names = cpp03/allocation cpp03/buffers cpp03/chat cpp03/echo
+ cpp03/fork cpp03/http/client cpp03/http/server cpp03/http/server2
+ cpp03/http/server3 cpp03/http/server4 cpp03/icmp cpp03/invocation
+ cpp03/iostreams cpp03/local cpp03/multicast cpp03/nonblocking cpp03/porthopper
+ cpp03/serialization cpp03/services cpp03/socks4 cpp03/spawn cpp03/ssl
+ cpp03/timeouts cpp03/timers cpp03/windows cpp11/allocation cpp11/buffers
+ cpp11/chat cpp11/echo cpp11/futures cpp11/http/server cpp11/spawn ;
for local l in $(example-names)
{
diff --git a/libs/asio/doc/asio.qbk b/libs/asio/doc/asio.qbk
index aba65f9c00..0a20fd1952 100644
--- a/libs/asio/doc/asio.qbk
+++ b/libs/asio/doc/asio.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -7,7 +7,7 @@
[library Boost.Asio
[quickbook 1.4]
- [copyright 2003 - 2012 Christopher M. Kohlhoff]
+ [copyright 2003 - 2014 Christopher M. Kohlhoff]
[purpose Networking library]
[license
Distributed under the Boost Software License, Version 1.0.
@@ -22,6 +22,7 @@
[template mdash[] '''&mdash; ''']
[template indexterm1[term1] '''<indexterm><primary>'''[term1]'''</primary></indexterm>''']
[template indexterm2[term1 term2] '''<indexterm><primary>'''[term1]'''</primary><secondary>'''[term2]'''</secondary></indexterm>''']
+[template ticket[number]'''<ulink url="https://svn.boost.org/trac/boost/ticket/'''[number]'''">'''#[number]'''</ulink>''']
[def __POSIX__ /POSIX/]
[def __Windows__ /Windows/]
[def __accept__ [@http://www.opengroup.org/onlinepubs/000095399/functions/accept.html `accept()`]]
diff --git a/libs/asio/doc/doxy2qbk.pl b/libs/asio/doc/doxy2qbk.pl
index 4340250a79..56505b782a 100644
--- a/libs/asio/doc/doxy2qbk.pl
+++ b/libs/asio/doc/doxy2qbk.pl
@@ -1,6 +1,6 @@
#!/usr/bin/perl -w
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/examples.qbk b/libs/asio/doc/examples.qbk
index bd55e339d2..df4c4f01b4 100644
--- a/libs/asio/doc/examples.qbk
+++ b/libs/asio/doc/examples.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -8,12 +8,24 @@
[section:examples Examples]
+* [link boost_asio.examples.cpp03_examples C++03 Examples]: Illustrates the use of
+Boost.Asio using only C++03 language and library features. Where necessary, the
+examples make use of selected Boost C++ libraries.
+
+* [link boost_asio.examples.cpp11_examples C++11 Examples]: Contains a limited set of
+the C++03 Boost.Asio examples, updated to use only C++11 library and language
+facilities. These examples do not make direct use of Boost C++ libraries.
+
+
+[section:cpp03_examples C++03 Examples]
+
+
[heading Allocation]
This example shows how to customise the allocation of memory associated with
asynchronous operations.
-* [@boost_asio/example/allocation/server.cpp]
+* [@boost_asio/example/cpp03/allocation/server.cpp]
[heading Buffers]
@@ -21,7 +33,7 @@ asynchronous operations.
This example demonstrates how to create reference counted buffers that can be
used with socket read and write operations.
-* [@boost_asio/example/buffers/reference_counted.cpp]
+* [@boost_asio/example/cpp03/buffers/reference_counted.cpp]
[heading Chat]
@@ -29,15 +41,15 @@ used with socket read and write operations.
This example implements a chat server and client. The programs use a custom
protocol with a fixed length message header and variable length message body.
-* [@boost_asio/example/chat/chat_message.hpp]
-* [@boost_asio/example/chat/chat_client.cpp]
-* [@boost_asio/example/chat/chat_server.cpp]
+* [@boost_asio/example/cpp03/chat/chat_message.hpp]
+* [@boost_asio/example/cpp03/chat/chat_client.cpp]
+* [@boost_asio/example/cpp03/chat/chat_server.cpp]
The following POSIX-specific chat client demonstrates how to use the
[link boost_asio.reference.posix__stream_descriptor posix::stream_descriptor] class to
perform console input and output.
-* [@boost_asio/example/chat/posix_chat_client.cpp]
+* [@boost_asio/example/cpp03/chat/posix_chat_client.cpp]
[heading Echo]
@@ -45,12 +57,12 @@ perform console input and output.
A collection of simple clients and servers, showing the use of both synchronous
and asynchronous operations.
-* [@boost_asio/example/echo/async_tcp_echo_server.cpp]
-* [@boost_asio/example/echo/async_udp_echo_server.cpp]
-* [@boost_asio/example/echo/blocking_tcp_echo_client.cpp]
-* [@boost_asio/example/echo/blocking_tcp_echo_server.cpp]
-* [@boost_asio/example/echo/blocking_udp_echo_client.cpp]
-* [@boost_asio/example/echo/blocking_udp_echo_server.cpp]
+* [@boost_asio/example/cpp03/echo/async_tcp_echo_server.cpp]
+* [@boost_asio/example/cpp03/echo/async_udp_echo_server.cpp]
+* [@boost_asio/example/cpp03/echo/blocking_tcp_echo_client.cpp]
+* [@boost_asio/example/cpp03/echo/blocking_tcp_echo_server.cpp]
+* [@boost_asio/example/cpp03/echo/blocking_udp_echo_client.cpp]
+* [@boost_asio/example/cpp03/echo/blocking_udp_echo_server.cpp]
[heading Fork]
@@ -59,12 +71,12 @@ These POSIX-specific examples show how to use Boost.Asio in conjunction with the
`fork()` system call. The first example illustrates the steps required to start
a daemon process:
-* [@boost_asio/example/fork/daemon.cpp]
+* [@boost_asio/example/cpp03/fork/daemon.cpp]
The second example demonstrates how it is possible to fork a process from
within a completion handler.
-* [@boost_asio/example/fork/process_per_connection.cpp]
+* [@boost_asio/example/cpp03/fork/process_per_connection.cpp]
[heading HTTP Client]
@@ -73,8 +85,8 @@ Example programs implementing simple HTTP 1.0 clients. These examples show how
to use the [link boost_asio.reference.read_until read_until] and [link
boost_asio.reference.async_read_until async_read_until] functions.
-* [@boost_asio/example/http/client/sync_client.cpp]
-* [@boost_asio/example/http/client/async_client.cpp]
+* [@boost_asio/example/cpp03/http/client/sync_client.cpp]
+* [@boost_asio/example/cpp03/http/client/async_client.cpp]
[heading HTTP Server]
@@ -83,98 +95,95 @@ This example illustrates the use of asio in a simple single-threaded server
implementation of HTTP 1.0. It demonstrates how to perform a clean shutdown by
cancelling all outstanding asynchronous operations.
-* [@boost_asio/example/http/server/connection.cpp]
-* [@boost_asio/example/http/server/connection.hpp]
-* [@boost_asio/example/http/server/connection_manager.cpp]
-* [@boost_asio/example/http/server/connection_manager.hpp]
-* [@boost_asio/example/http/server/header.hpp]
-* [@boost_asio/example/http/server/main.cpp]
-* [@boost_asio/example/http/server/mime_types.cpp]
-* [@boost_asio/example/http/server/mime_types.hpp]
-* [@boost_asio/example/http/server/reply.cpp]
-* [@boost_asio/example/http/server/reply.hpp]
-* [@boost_asio/example/http/server/request.hpp]
-* [@boost_asio/example/http/server/request_handler.cpp]
-* [@boost_asio/example/http/server/request_handler.hpp]
-* [@boost_asio/example/http/server/request_parser.cpp]
-* [@boost_asio/example/http/server/request_parser.hpp]
-* [@boost_asio/example/http/server/server.cpp]
-* [@boost_asio/example/http/server/server.hpp]
+* [@boost_asio/example/cpp03/http/server/connection.cpp]
+* [@boost_asio/example/cpp03/http/server/connection.hpp]
+* [@boost_asio/example/cpp03/http/server/connection_manager.cpp]
+* [@boost_asio/example/cpp03/http/server/connection_manager.hpp]
+* [@boost_asio/example/cpp03/http/server/header.hpp]
+* [@boost_asio/example/cpp03/http/server/main.cpp]
+* [@boost_asio/example/cpp03/http/server/mime_types.cpp]
+* [@boost_asio/example/cpp03/http/server/mime_types.hpp]
+* [@boost_asio/example/cpp03/http/server/reply.cpp]
+* [@boost_asio/example/cpp03/http/server/reply.hpp]
+* [@boost_asio/example/cpp03/http/server/request.hpp]
+* [@boost_asio/example/cpp03/http/server/request_handler.cpp]
+* [@boost_asio/example/cpp03/http/server/request_handler.hpp]
+* [@boost_asio/example/cpp03/http/server/request_parser.cpp]
+* [@boost_asio/example/cpp03/http/server/request_parser.hpp]
+* [@boost_asio/example/cpp03/http/server/server.cpp]
+* [@boost_asio/example/cpp03/http/server/server.hpp]
[heading HTTP Server 2]
An HTTP server using an io_service-per-CPU design.
-* [@boost_asio/example/http/server2/connection.cpp]
-* [@boost_asio/example/http/server2/connection.hpp]
-* [@boost_asio/example/http/server2/header.hpp]
-* [@boost_asio/example/http/server2/io_service_pool.cpp]
-* [@boost_asio/example/http/server2/io_service_pool.hpp]
-* [@boost_asio/example/http/server2/main.cpp]
-* [@boost_asio/example/http/server2/mime_types.cpp]
-* [@boost_asio/example/http/server2/mime_types.hpp]
-* [@boost_asio/example/http/server2/reply.cpp]
-* [@boost_asio/example/http/server2/reply.hpp]
-* [@boost_asio/example/http/server2/request.hpp]
-* [@boost_asio/example/http/server2/request_handler.cpp]
-* [@boost_asio/example/http/server2/request_handler.hpp]
-* [@boost_asio/example/http/server2/request_parser.cpp]
-* [@boost_asio/example/http/server2/request_parser.hpp]
-* [@boost_asio/example/http/server2/server.cpp]
-* [@boost_asio/example/http/server2/server.hpp]
+* [@boost_asio/example/cpp03/http/server2/connection.cpp]
+* [@boost_asio/example/cpp03/http/server2/connection.hpp]
+* [@boost_asio/example/cpp03/http/server2/header.hpp]
+* [@boost_asio/example/cpp03/http/server2/io_service_pool.cpp]
+* [@boost_asio/example/cpp03/http/server2/io_service_pool.hpp]
+* [@boost_asio/example/cpp03/http/server2/main.cpp]
+* [@boost_asio/example/cpp03/http/server2/mime_types.cpp]
+* [@boost_asio/example/cpp03/http/server2/mime_types.hpp]
+* [@boost_asio/example/cpp03/http/server2/reply.cpp]
+* [@boost_asio/example/cpp03/http/server2/reply.hpp]
+* [@boost_asio/example/cpp03/http/server2/request.hpp]
+* [@boost_asio/example/cpp03/http/server2/request_handler.cpp]
+* [@boost_asio/example/cpp03/http/server2/request_handler.hpp]
+* [@boost_asio/example/cpp03/http/server2/request_parser.cpp]
+* [@boost_asio/example/cpp03/http/server2/request_parser.hpp]
+* [@boost_asio/example/cpp03/http/server2/server.cpp]
+* [@boost_asio/example/cpp03/http/server2/server.hpp]
[heading HTTP Server 3]
An HTTP server using a single io_service and a thread pool calling `io_service::run()`.
-* [@boost_asio/example/http/server3/connection.cpp]
-* [@boost_asio/example/http/server3/connection.hpp]
-* [@boost_asio/example/http/server3/header.hpp]
-* [@boost_asio/example/http/server3/main.cpp]
-* [@boost_asio/example/http/server3/mime_types.cpp]
-* [@boost_asio/example/http/server3/mime_types.hpp]
-* [@boost_asio/example/http/server3/reply.cpp]
-* [@boost_asio/example/http/server3/reply.hpp]
-* [@boost_asio/example/http/server3/request.hpp]
-* [@boost_asio/example/http/server3/request_handler.cpp]
-* [@boost_asio/example/http/server3/request_handler.hpp]
-* [@boost_asio/example/http/server3/request_parser.cpp]
-* [@boost_asio/example/http/server3/request_parser.hpp]
-* [@boost_asio/example/http/server3/server.cpp]
-* [@boost_asio/example/http/server3/server.hpp]
+* [@boost_asio/example/cpp03/http/server3/connection.cpp]
+* [@boost_asio/example/cpp03/http/server3/connection.hpp]
+* [@boost_asio/example/cpp03/http/server3/header.hpp]
+* [@boost_asio/example/cpp03/http/server3/main.cpp]
+* [@boost_asio/example/cpp03/http/server3/mime_types.cpp]
+* [@boost_asio/example/cpp03/http/server3/mime_types.hpp]
+* [@boost_asio/example/cpp03/http/server3/reply.cpp]
+* [@boost_asio/example/cpp03/http/server3/reply.hpp]
+* [@boost_asio/example/cpp03/http/server3/request.hpp]
+* [@boost_asio/example/cpp03/http/server3/request_handler.cpp]
+* [@boost_asio/example/cpp03/http/server3/request_handler.hpp]
+* [@boost_asio/example/cpp03/http/server3/request_parser.cpp]
+* [@boost_asio/example/cpp03/http/server3/request_parser.hpp]
+* [@boost_asio/example/cpp03/http/server3/server.cpp]
+* [@boost_asio/example/cpp03/http/server3/server.hpp]
[heading HTTP Server 4]
A single-threaded HTTP server implemented using stackless coroutines.
-* [@boost_asio/example/http/server4/coroutine.hpp]
-* [@boost_asio/example/http/server4/file_handler.cpp]
-* [@boost_asio/example/http/server4/file_handler.hpp]
-* [@boost_asio/example/http/server4/header.hpp]
-* [@boost_asio/example/http/server4/main.cpp]
-* [@boost_asio/example/http/server4/mime_types.cpp]
-* [@boost_asio/example/http/server4/mime_types.hpp]
-* [@boost_asio/example/http/server4/reply.cpp]
-* [@boost_asio/example/http/server4/reply.hpp]
-* [@boost_asio/example/http/server4/request.hpp]
-* [@boost_asio/example/http/server4/request_parser.cpp]
-* [@boost_asio/example/http/server4/request_parser.hpp]
-* [@boost_asio/example/http/server4/server.cpp]
-* [@boost_asio/example/http/server4/server.hpp]
-* [@boost_asio/example/http/server4/unyield.hpp]
-* [@boost_asio/example/http/server4/yield.hpp]
+* [@boost_asio/example/cpp03/http/server4/file_handler.cpp]
+* [@boost_asio/example/cpp03/http/server4/file_handler.hpp]
+* [@boost_asio/example/cpp03/http/server4/header.hpp]
+* [@boost_asio/example/cpp03/http/server4/main.cpp]
+* [@boost_asio/example/cpp03/http/server4/mime_types.cpp]
+* [@boost_asio/example/cpp03/http/server4/mime_types.hpp]
+* [@boost_asio/example/cpp03/http/server4/reply.cpp]
+* [@boost_asio/example/cpp03/http/server4/reply.hpp]
+* [@boost_asio/example/cpp03/http/server4/request.hpp]
+* [@boost_asio/example/cpp03/http/server4/request_parser.cpp]
+* [@boost_asio/example/cpp03/http/server4/request_parser.hpp]
+* [@boost_asio/example/cpp03/http/server4/server.cpp]
+* [@boost_asio/example/cpp03/http/server4/server.hpp]
[heading ICMP]
This example shows how to use raw sockets with ICMP to ping a remote host.
-* [@boost_asio/example/icmp/ping.cpp]
-* [@boost_asio/example/icmp/ipv4_header.hpp]
-* [@boost_asio/example/icmp/icmp_header.hpp]
+* [@boost_asio/example/cpp03/icmp/ping.cpp]
+* [@boost_asio/example/cpp03/icmp/ipv4_header.hpp]
+* [@boost_asio/example/cpp03/icmp/icmp_header.hpp]
[heading Invocation]
@@ -182,7 +191,7 @@ This example shows how to use raw sockets with ICMP to ping a remote host.
This example shows how to customise handler invocation. Completion handlers are
added to a priority queue rather than executed immediately.
-* [@boost_asio/example/invocation/prioritised_handlers.cpp]
+* [@boost_asio/example/cpp03/invocation/prioritised_handlers.cpp]
[heading Iostreams]
@@ -190,9 +199,9 @@ added to a priority queue rather than executed immediately.
Two examples showing how to use [link boost_asio.reference.ip__tcp.iostream
ip::tcp::iostream].
-* [@boost_asio/example/iostreams/daytime_client.cpp]
-* [@boost_asio/example/iostreams/daytime_server.cpp]
-* [@boost_asio/example/iostreams/http_client.cpp]
+* [@boost_asio/example/cpp03/iostreams/daytime_client.cpp]
+* [@boost_asio/example/cpp03/iostreams/daytime_server.cpp]
+* [@boost_asio/example/cpp03/iostreams/http_client.cpp]
[heading Multicast]
@@ -200,8 +209,8 @@ ip::tcp::iostream].
An example showing the use of multicast to transmit packets to a group of
subscribers.
-* [@boost_asio/example/multicast/receiver.cpp]
-* [@boost_asio/example/multicast/sender.cpp]
+* [@boost_asio/example/cpp03/multicast/receiver.cpp]
+* [@boost_asio/example/cpp03/multicast/sender.cpp]
[heading Serialization]
@@ -209,10 +218,10 @@ subscribers.
This example shows how Boost.Serialization can be used with asio to encode and
decode structures for transmission over a socket.
-* [@boost_asio/example/serialization/client.cpp]
-* [@boost_asio/example/serialization/connection.hpp]
-* [@boost_asio/example/serialization/server.cpp]
-* [@boost_asio/example/serialization/stock.hpp]
+* [@boost_asio/example/cpp03/serialization/client.cpp]
+* [@boost_asio/example/cpp03/serialization/connection.hpp]
+* [@boost_asio/example/cpp03/serialization/server.cpp]
+* [@boost_asio/example/cpp03/serialization/stock.hpp]
[heading Services]
@@ -222,12 +231,12 @@ for logging) into asio's [link boost_asio.reference.io_service io_service], and
how to use a custom service with [link
boost_asio.reference.basic_stream_socket basic_stream_socket<>].
-* [@boost_asio/example/services/basic_logger.hpp]
-* [@boost_asio/example/services/daytime_client.cpp]
-* [@boost_asio/example/services/logger.hpp]
-* [@boost_asio/example/services/logger_service.cpp]
-* [@boost_asio/example/services/logger_service.hpp]
-* [@boost_asio/example/services/stream_socket_service.hpp]
+* [@boost_asio/example/cpp03/services/basic_logger.hpp]
+* [@boost_asio/example/cpp03/services/daytime_client.cpp]
+* [@boost_asio/example/cpp03/services/logger.hpp]
+* [@boost_asio/example/cpp03/services/logger_service.cpp]
+* [@boost_asio/example/cpp03/services/logger_service.hpp]
+* [@boost_asio/example/cpp03/services/stream_socket_service.hpp]
[heading SOCKS 4]
@@ -235,8 +244,8 @@ boost_asio.reference.basic_stream_socket basic_stream_socket<>].
Example client program implementing the SOCKS 4 protocol for communication via
a proxy.
-* [@boost_asio/example/socks4/sync_client.cpp]
-* [@boost_asio/example/socks4/socks4.hpp]
+* [@boost_asio/example/cpp03/socks4/sync_client.cpp]
+* [@boost_asio/example/cpp03/socks4/socks4.hpp]
[heading SSL]
@@ -244,8 +253,8 @@ a proxy.
Example client and server programs showing the use of the [link
boost_asio.reference.ssl__stream ssl::stream<>] template with asynchronous operations.
-* [@boost_asio/example/ssl/client.cpp]
-* [@boost_asio/example/ssl/server.cpp]
+* [@boost_asio/example/cpp03/ssl/client.cpp]
+* [@boost_asio/example/cpp03/ssl/server.cpp]
[heading Timeouts]
@@ -253,18 +262,18 @@ boost_asio.reference.ssl__stream ssl::stream<>] template with asynchronous opera
A collection of examples showing how to cancel long running asynchronous
operations after a period of time.
-* [@boost_asio/example/timeouts/async_tcp_client.cpp]
-* [@boost_asio/example/timeouts/blocking_tcp_client.cpp]
-* [@boost_asio/example/timeouts/blocking_udp_client.cpp]
-* [@boost_asio/example/timeouts/server.cpp]
+* [@boost_asio/example/cpp03/timeouts/async_tcp_client.cpp]
+* [@boost_asio/example/cpp03/timeouts/blocking_tcp_client.cpp]
+* [@boost_asio/example/cpp03/timeouts/blocking_udp_client.cpp]
+* [@boost_asio/example/cpp03/timeouts/server.cpp]
[heading Timers]
Examples showing how to customise deadline_timer using different time types.
-* [@boost_asio/example/timers/tick_count_timer.cpp]
-* [@boost_asio/example/timers/time_t_timer.cpp]
+* [@boost_asio/example/cpp03/timers/tick_count_timer.cpp]
+* [@boost_asio/example/cpp03/timers/time_t_timer.cpp]
[heading Porthopper]
@@ -272,9 +281,9 @@ Examples showing how to customise deadline_timer using different time types.
Example illustrating mixed synchronous and asynchronous operations, and how to
use Boost.Lambda with Boost.Asio.
-* [@boost_asio/example/porthopper/protocol.hpp]
-* [@boost_asio/example/porthopper/client.cpp]
-* [@boost_asio/example/porthopper/server.cpp]
+* [@boost_asio/example/cpp03/porthopper/protocol.hpp]
+* [@boost_asio/example/cpp03/porthopper/client.cpp]
+* [@boost_asio/example/cpp03/porthopper/server.cpp]
[heading Nonblocking]
@@ -282,16 +291,26 @@ use Boost.Lambda with Boost.Asio.
Example demonstrating reactor-style operations for integrating a third-party
library that wants to perform the I/O operations itself.
-* [@boost_asio/example/nonblocking/third_party_lib.cpp]
+* [@boost_asio/example/cpp03/nonblocking/third_party_lib.cpp]
+
+
+[heading Spawn]
+
+Example of using the boost::asio::spawn() function, a wrapper around the
+[@http://www.boost.org/doc/libs/release/libs/coroutine/index.html Boost.Coroutine]
+library, to implement a chain of asynchronous operations using stackful
+coroutines.
+
+* [@boost_asio/example/cpp03/spawn/echo_server.cpp]
[heading UNIX Domain Sockets]
Examples showing how to use UNIX domain (local) sockets.
-* [@boost_asio/example/local/connect_pair.cpp]
-* [@boost_asio/example/local/stream_server.cpp]
-* [@boost_asio/example/local/stream_client.cpp]
+* [@boost_asio/example/cpp03/local/connect_pair.cpp]
+* [@boost_asio/example/cpp03/local/stream_server.cpp]
+* [@boost_asio/example/cpp03/local/stream_client.cpp]
[heading Windows]
@@ -299,7 +318,98 @@ Examples showing how to use UNIX domain (local) sockets.
An example showing how to use the Windows-specific function `TransmitFile`
with Boost.Asio.
-* [@boost_asio/example/windows/transmit_file.cpp]
+* [@boost_asio/example/cpp03/windows/transmit_file.cpp]
+
+
+[endsect]
+
+
+[section:cpp11_examples C++11 Examples]
+
+
+[heading Allocation]
+
+This example shows how to customise the allocation of memory associated with
+asynchronous operations.
+
+* [@boost_asio/example/cpp11/allocation/server.cpp]
+
+
+[heading Buffers]
+
+This example demonstrates how to create reference counted buffers that can be
+used with socket read and write operations.
+
+* [@boost_asio/example/cpp11/buffers/reference_counted.cpp]
+
+
+[heading Chat]
+
+This example implements a chat server and client. The programs use a custom
+protocol with a fixed length message header and variable length message body.
+
+* [@boost_asio/example/cpp11/chat/chat_message.hpp]
+* [@boost_asio/example/cpp11/chat/chat_client.cpp]
+* [@boost_asio/example/cpp11/chat/chat_server.cpp]
+
+
+[heading Echo]
+
+A collection of simple clients and servers, showing the use of both synchronous
+and asynchronous operations.
+
+* [@boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp]
+* [@boost_asio/example/cpp11/echo/async_udp_echo_server.cpp]
+* [@boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp]
+* [@boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp]
+* [@boost_asio/example/cpp11/echo/blocking_udp_echo_client.cpp]
+* [@boost_asio/example/cpp11/echo/blocking_udp_echo_server.cpp]
+
+
+[heading Futures]
+
+This example demonstrates how to use std::future in conjunction with
+Boost.Asio's asynchronous operations.
+
+* [@boost_asio/example/cpp11/futures/daytime_client.cpp]
+
+
+[heading HTTP Server]
+
+This example illustrates the use of asio in a simple single-threaded server
+implementation of HTTP 1.0. It demonstrates how to perform a clean shutdown by
+cancelling all outstanding asynchronous operations.
+
+* [@boost_asio/example/cpp11/http/server/connection.cpp]
+* [@boost_asio/example/cpp11/http/server/connection.hpp]
+* [@boost_asio/example/cpp11/http/server/connection_manager.cpp]
+* [@boost_asio/example/cpp11/http/server/connection_manager.hpp]
+* [@boost_asio/example/cpp11/http/server/header.hpp]
+* [@boost_asio/example/cpp11/http/server/main.cpp]
+* [@boost_asio/example/cpp11/http/server/mime_types.cpp]
+* [@boost_asio/example/cpp11/http/server/mime_types.hpp]
+* [@boost_asio/example/cpp11/http/server/reply.cpp]
+* [@boost_asio/example/cpp11/http/server/reply.hpp]
+* [@boost_asio/example/cpp11/http/server/request.hpp]
+* [@boost_asio/example/cpp11/http/server/request_handler.cpp]
+* [@boost_asio/example/cpp11/http/server/request_handler.hpp]
+* [@boost_asio/example/cpp11/http/server/request_parser.cpp]
+* [@boost_asio/example/cpp11/http/server/request_parser.hpp]
+* [@boost_asio/example/cpp11/http/server/server.cpp]
+* [@boost_asio/example/cpp11/http/server/server.hpp]
+
+
+[heading Spawn]
+
+Example of using the boost::asio::spawn() function, a wrapper around the
+[@http://www.boost.org/doc/libs/release/libs/coroutine/index.html Boost.Coroutine]
+library, to implement a chain of asynchronous operations using stackful
+coroutines.
+
+* [@boost_asio/example/cpp11/spawn/echo_server.cpp]
+
+
+[endsect]
[endsect]
diff --git a/libs/asio/doc/history.qbk b/libs/asio/doc/history.qbk
index cdc30077f1..cae14f801b 100644
--- a/libs/asio/doc/history.qbk
+++ b/libs/asio/doc/history.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -7,6 +7,253 @@
[section:history Revision History]
+[heading Asio 1.10.5 / Boost 1.57]
+
+* Fixed the [^kqueue] reactor so that it works on FreeBSD ([ticket 10606]).
+* Fixed an issue in the [^kqueue] reactor which resulted in spinning when using
+ serial ports on Mac OS ([ticket 10496]).
+* Fixed [^kqueue] reactor support for read-only file descriptors
+ ([ticket 10367]).
+* Fixed a compile error when using the [^/dev/poll] reactor ([ticket 10350],
+ [ticket 10572]).
+* Changed the Windows backend to use `WSASocketW`, as `WSASocketA` has been
+ deprecated ([ticket 10534]).
+* Fixed some warnings reported by Visual C++ 2013 ([ticket 10376]).
+* Fixed integer type used in the WinRT version of the byte-order conversion
+ functions ([ticket 10539]).
+* Changed documentation to indicate that `use_future` and `spawn()` are not
+ made available when including the `asio.hpp` convenience header ([ticket
+ 10567]).
+* Explicitly marked `asio::strand` as deprecated. Use
+ `asio::io_service::strand` instead.
+
+[heading Asio 1.10.4 / Boost 1.56]
+
+* Stopped using certain Winsock functions that are marked as deprecated in the
+ latest Visual C++ and Windows SDK.
+* Fixed a shadow variable warning on Windows.
+* Fixed a regression in the [^kqueue] backend that was introduced in Asio
+ 1.10.2.
+* Added a workaround for building the unit tests with [^gcc] on AIX.
+
+[heading Asio 1.10.3]
+
+* Worked around a [^gcc] problem to do with anonymous enums ([ticket 10042]).
+* Reverted the Windows `HANDLE` backend change to ignore `ERROR_MORE_DATA`.
+ Instead, the error will be propagated as with any other (i.e. in an
+ `error_code` or thrown as a `system_error`), and the number of bytes
+ transferred will be returned. For code that needs to handle partial messages,
+ the `error_code` overload should be used ([ticket 10034]).
+* Fixed an off-by-one error in the `signal_set` implementation's signal
+ number check ([ticket 9324]).
+* Changed the Windows IOCP backend to not assume that
+ `SO_UPDATE_CONNECT_CONTEXT` is defined ([ticket 10016]).
+* Fixed a Windows-specific issue, introduced in Asio 1.10.2, by using
+ `VerifyVersionInfo` rather than `GetVersionEx`, as `GetVersionEx` has been
+ deprecated.
+* Changed to use SSE2 intrinsics rather than inline assembly, to allow the
+ Cray compiler to work.
+
+[heading Asio 1.10.2]
+
+* Fixed `asio::spawn()` to work correctly with new Boost.Coroutine interface
+ ([ticket 9442], [ticket 9928]).
+* Ensured that incomplete `asio::spawn()` coroutines are correctly unwound when
+ cleaned up by the `io_service` destructor ([ticket 9731]).
+* Fixed delegation of continuation hook for handlers produced by
+ `io_service::wrap()` and `strand::wrap()` ([ticket 9741]).
+* Changed the Windows I/O completion port backend to use `ConnectEx`, if
+ available, for connection-oriented IP sockets.
+* Changed the `io_service` backend for non-Windows (and non-IOCP Windows)
+ platforms to use a single condition variable per `io_service` instance.
+ This addresses a potential race condition when `run_one()` is used from
+ multiple threads.
+* Prevented integer overflow when computing timeouts based on some
+ `boost::chrono` and `std::chrono` clocks ([ticket 9662], [ticket 9778]).
+* Made further changes to `EV_CLEAR` handling in the kqueue backend, to address
+ other cases where the `close()` system call may hang on Mac OS X.
+* Fixed infinite recursion in implementation of
+ `resolver_query_base::flags::operator~` ([ticket 9548]).
+* Made the `select` reactor more efficient on Windows for large numbers of
+ sockets ([ticket 9528]).
+* Fixed a Windows-specific type-aliasing issue reported by [^gcc] ([ticket
+ 9550]).
+* Prevented execution of compile-time-only buffer test to avoid triggering an
+ address sanitiser warning ([ticket 8295]).
+* Disabled the `GetQueuedCompletionStatus` timeout workaround on recent
+ versions of Windows.
+* Added support for string-based scope IDs when using link-local multicast
+ addresses.
+* Changed IPv6 multicast group join to use the address's scope ID as the
+ interface, if an interface is not explicitly specified.
+* Fixed multicast test failure on Mac OS X and the BSDs by using a link-local
+ multicast address.
+* Various minor documentation improvements ([ticket 8295], [ticket 9605],
+ [ticket 9771]).
+
+[heading Asio 1.10.1 / Boost 1.55]
+
+* Implemented a limited port to Windows Runtime. This support requires that the
+ language extensions be enabled. Due to the restricted facilities exposed by
+ the Windows Runtime API, the port also comes with the following caveats:
+ * The core facilities such as the `io_service`, `strand`, buffers, composed
+ operations, timers, etc., should all work as normal.
+ * For sockets, only client-side TCP is supported.
+ * Explicit binding of a client-side TCP socket is not supported.
+ * The `cancel()` function is not supported for sockets. Asynchronous
+ operations may only be cancelled by closing the socket.
+ * Operations that use `null_buffers` are not supported.
+ * Only `tcp::no_delay` and `socket_base::keep_alive` options are supported.
+ * Resolvers do not support service names, only numbers. I.e. you must
+ use "80" rather than "http".
+ * Most resolver query flags have no effect.
+* Fixed a regression (introduced in Boost 1.54) where, on some platforms, errors
+ from `async_connect` were not correctly propagated through to the completion
+ handler ([ticket 8795]).
+* Fixed a Windows-specific regression (introduced in Boost 1.54) that occurs
+ when multiple threads are running an `io_service`. When the bug occurs, the
+ result of an asynchronous operation (error and bytes tranferred) is
+ incorrectly discarded and zero values used instead. For TCP sockets this
+ results in spurious end-of-file notifications ([ticket 8933]).
+* Fixed a bug in handler tracking, where it was not correctly printing out some
+ handler IDs ([ticket 8808]).
+* Fixed the comparison used to test for successful synchronous accept
+ operations so that it works correctly with unsigned socket descriptors
+ ([ticket 8752]).
+* Ensured the signal number is correctly passed to the completion handler when
+ starting an `async_wait` on a signal that is already raised ([ticket 8738]).
+* Suppressed a g++ 4.8+ warning about unused typedefs ([ticket 8980]).
+* Enabled the move optimisation for handlers that use the default invocation
+ hook ([ticket 8624]).
+* Clarified that programs must not issue overlapping `async_write_at`
+ operations ([ticket 8669]).
+* Changed the Windows `HANDLE` backend to treat `ERROR_MORE_DATA` as a
+ non-fatal error when returned by `GetOverlappedResult` for a synchronous
+ read ([ticket 8722]).
+* Visual C++ language extensions use `generic` as a keyword. Added a
+ workaround that renames the namespace to `cpp_generic` when those language
+ extensions are in effect.
+* Fixed some asynchronous operations that missed out on getting `async_result`
+ support in Boost 1.54. In particular, the buffered stream templates have been
+ updated so that they adhere to current handler patterns ([ticket 9000],
+ [ticket 9001]).
+* Enabled move support for Microsoft Visual Studio 2012 ([ticket 8959]).
+* Added `use_future` support for Microsoft Visual Studio 2012.
+* Removed a use of `std::min` in the Windows IOCP backend to avoid a
+ dependency on the `<algorithm>` header ([ticket 8758]).
+* Eliminated some unnecessary handler copies.
+* Fixed support for older versions of OpenSSL that do not provide the
+ `SSL_CTX_clear_options` function ([ticket 9273]).
+* Fixed various minor and cosmetic issues in code and documentation
+ (including [ticket 8347], [ticket 8950], [ticket 8953], [ticket 8965],
+ [ticket 8997], [ticket 9230]).
+
+[heading Asio 1.10.0 / Boost 1.54]
+
+* Added new traits classes, `handler_type` and `async_result`, that allow the
+ customisation of the return type of an initiating function.
+* Added the `asio::spawn()` function, a high-level wrapper for running
+ stackful coroutines, based on the Boost.Coroutine library. The `spawn()`
+ function enables programs to implement asynchronous logic in a synchronous
+ manner. For example: `size_t n = my_socket.async_read_some(my_buffer, yield);`.
+ For further information, see [link boost_asio.overview.core.spawn Stackful
+ Coroutines].
+* Added the `asio::use_future` special value, which provides first-class
+ support for returning a C++11 `std::future` from an asynchronous
+ operation's initiating function. For example:
+ `future<size_t> = my_socket.async_read_some(my_buffer, asio::use_future);`.
+ For further information, see [link boost_asio.overview.cpp2011.futures C++
+ 2011 Support - Futures].
+* Promoted the stackless coroutine class and macros to be part of Asio's
+ documented interface, rather than part of the HTTP server 4 example.
+ For further information, see [link boost_asio.overview.core.coroutine
+ Stackless Coroutines].
+* Added a new handler hook called `asio_handler_is_continuation`.
+ Asynchronous operations may represent a continuation of the asynchronous
+ control flow associated with the current executing handler. The
+ `asio_handler_is_continuation` hook can be customised to return `true` if
+ this is the case, and Asio's implementation can use this knowledge to
+ optimise scheduling of the new handler. To cover common cases, Asio
+ customises the hook for strands, `spawn()` and composed asynchronous
+ operations.
+* Added four new generic protocol classes, `generic::datagram_protocol`,
+ `generic::raw_protocol`, `generic::seq_packet_protocol` and
+ `generic::stream_protocol`, which implement the `Protocol` type
+ requirements, but allow the user to specify the address family (e.g.
+ `AF_INET`) and protocol type (e.g. `IPPROTO_TCP`) at runtime.
+ For further information, see [link
+ boost_asio.overview.networking.other_protocols Support for Other Protocols].
+* Added C++11 move constructors that allow the conversion of a socket (or
+ acceptor) into a more generic type. For example, an `ip::tcp::socket` can
+ be converted into a `generic::stream_protocol::socket` via move
+ construction.
+ For further information, see [link
+ boost_asio.overview.networking.other_protocols Support for Other Protocols].
+* Extended the `basic_socket_acceptor<>`'s `accept()` and `async_accept()`
+ functions to allow a new connection to be accepted directly into a socket
+ of a more generic type. For example, an `ip::tcp::acceptor` can be used to
+ accept into a `generic::stream_protocol::socket` object.
+ For further information, see [link
+ boost_asio.overview.networking.other_protocols Support for Other Protocols].
+* Moved existing examples into a C++03-specific directory, and added a new
+ directory for C++11-specific examples. A limited subset of the C++03
+ examples have been converted to their C++11 equivalents.
+* Various SSL enhancements. Thanks go to Nick Jones, on whose work these changes
+ are based.
+ * Added support for SSL handshakes with re-use of data already read from
+ the wire. New overloads of the `ssl::stream<>` class's `handshake()` and
+ `async_handshake()` functions have been added. These accept a
+ `ConstBufferSequence` to be used as initial input to the ssl engine for
+ the handshake procedure.
+ * Added support for creation of TLSv1.1 and TLSv1.2 `ssl::context` objects.
+ * Added a `set_verify_depth()` function to the `ssl::context` and
+ `ssl::stream<>` classes.
+ * Added the ability to load SSL certificate and key data from memory
+ buffers. New functions, `add_certificate_authority()`,
+ `use_certificate()`, `use_certificate_chain()`, `use_private_key()`,
+ `use_rsa_private_key()` and `use_tmp_dh()`, have been added to the
+ `ssl::context` class.
+ * Changed `ssl::context` to automatically disable SSL compression by
+ default. To enable, use the new `ssl::context::clear_options()` function,
+ as in `my_context.clear_options(ssl::context::no_compression)`.
+* Fixed a potential deadlock in `signal_set` implementation.
+* Fixed an error in acceptor example in documentation [ticket 8421].
+* Fixed copy-paste errors in waitable timer documentation [ticket 8602].
+* Added assertions to satisfy some code analysis tools [ticket 7739].
+* Fixed a malformed `#warning` directive [ticket 7939].
+* Fixed a potential data race in the Linux `epoll` implementation.
+* Fixed a Windows-specific bug, where certain operations might generate an
+ `error_code` with an invalid (i.e. `NULL`) `error_category` [ticket 8613].
+* Fixed `basic_waitable_timer`'s underlying implementation so that it can
+ handle any `time_point` value without overflowing the intermediate duration
+ objects.
+* Fixed a problem with lost thread wakeups that can occur when making
+ concurrent calls to `run()` and `poll()` on the same `io_service` object
+ [ticket 8354].
+* Fixed implementation of asynchronous connect operation so that it can cope
+ with spurious readiness notifications from the reactor [ticket 7961].
+* Fixed a memory leak in the `ssl::rfc2818_verification` class.
+* Added a mechanism for disabling automatic Winsock initialisation [ticket
+ 3605]. See the header file [^boost/asio/detail/winsock_init.hpp] for details.
+
+[heading Asio 1.8.3 / Boost 1.53]
+
+* Fixed some 64-to-32-bit conversion warnings ([ticket 7459]).
+* Fixed some small errors in documentation and comments ([ticket 7761]).
+* Fixed an error in the example embedded in `basic_socket::get_option`'s
+ documentation ([ticket 7562]).
+* Changed to use `long` rather than `int` for SSL_CTX options, to match OpenSSL
+ ([ticket 7209]).
+* Changed to use `_snwprintf` to address a compile error due to the changed
+ `swprintf` signature in recent versions of MinGW ([ticket 7373]).
+* Fixed a deadlock that can occur on Windows when shutting down a pool of
+ `io_service` threads due to running out of work ([ticket 7552]).
+* Enabled the `noexcept` qualifier for error categories ([ticket 7797]).
+* Changed UNIX domain socket example to treat errors from `accept` as non-fatal
+ ([ticket 7488]).
+* Added a small block recycling optimisation to improve default memory
+ allocation behaviour.
+
[heading Asio 1.8.2 / Boost 1.51]
* Fixed an incompatibility between `ip::tcp::iostream` and C++11
diff --git a/libs/asio/doc/index.xml b/libs/asio/doc/index.xml
index beca8d429b..2c22bbc88a 100644
--- a/libs/asio/doc/index.xml
+++ b/libs/asio/doc/index.xml
@@ -2,7 +2,7 @@
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "../../../tools/boostbook/dtd/boostbook.dtd">
<!--
- Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/noncopyable_dox.txt b/libs/asio/doc/noncopyable_dox.txt
index b97e9a3cea..a873904056 100644
--- a/libs/asio/doc/noncopyable_dox.txt
+++ b/libs/asio/doc/noncopyable_dox.txt
@@ -1,5 +1,5 @@
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/overview.qbk b/libs/asio/doc/overview.qbk
index cb63854f10..6ec434f757 100644
--- a/libs/asio/doc/overview.qbk
+++ b/libs/asio/doc/overview.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -19,8 +19,11 @@
* [link boost_asio.overview.core.line_based Line-Based Operations]
* [link boost_asio.overview.core.allocation Custom Memory Allocation]
* [link boost_asio.overview.core.handler_tracking Handler Tracking]
+ * [link boost_asio.overview.core.coroutine Stackless Coroutines]
+ * [link boost_asio.overview.core.spawn Stackful Coroutines]
* [link boost_asio.overview.networking Networking]
* [link boost_asio.overview.networking.protocols TCP, UDP and ICMP]
+ * [link boost_asio.overview.networking.other_protocols Support for Other Protocols]
* [link boost_asio.overview.networking.iostreams Socket Iostreams]
* [link boost_asio.overview.networking.bsd_sockets The BSD Socket API and Boost.Asio]
* [link boost_asio.overview.timers Timers]
@@ -43,6 +46,7 @@
* [link boost_asio.overview.cpp2011.atomic Atomics]
* [link boost_asio.overview.cpp2011.shared_ptr Shared Pointers]
* [link boost_asio.overview.cpp2011.chrono Chrono]
+ * [link boost_asio.overview.cpp2011.futures Futures]
* [link boost_asio.overview.implementation Platform-Specific Implementation Notes]
[include overview/rationale.qbk]
@@ -59,6 +63,8 @@
* [link boost_asio.overview.core.line_based Line-Based Operations]
* [link boost_asio.overview.core.allocation Custom Memory Allocation]
* [link boost_asio.overview.core.handler_tracking Handler Tracking]
+* [link boost_asio.overview.core.coroutine Stackless Coroutines]
+* [link boost_asio.overview.core.spawn Stackful Coroutines]
[include overview/basics.qbk]
[include overview/async.qbk]
@@ -70,16 +76,20 @@
[include overview/line_based.qbk]
[include overview/allocation.qbk]
[include overview/handler_tracking.qbk]
+[include overview/coroutine.qbk]
+[include overview/spawn.qbk]
[endsect]
[section:networking Networking]
* [link boost_asio.overview.networking.protocols TCP, UDP and ICMP]
+* [link boost_asio.overview.networking.other_protocols Support for Other Protocols]
* [link boost_asio.overview.networking.iostreams Socket Iostreams]
* [link boost_asio.overview.networking.bsd_sockets The BSD Socket API and Boost.Asio]
[include overview/protocols.qbk]
+[include overview/other_protocols.qbk]
[include overview/iostreams.qbk]
[include overview/bsd_sockets.qbk]
diff --git a/libs/asio/doc/overview/allocation.qbk b/libs/asio/doc/overview/allocation.qbk
index 6840979a6a..0b2b4fac25 100644
--- a/libs/asio/doc/overview/allocation.qbk
+++ b/libs/asio/doc/overview/allocation.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -52,6 +52,7 @@ threads.
[link boost_asio.reference.asio_handler_allocate asio_handler_allocate],
[link boost_asio.reference.asio_handler_deallocate asio_handler_deallocate],
-[link boost_asio.examples.allocation custom memory allocation example].
+[link boost_asio.examples.cpp03_examples.allocation custom memory allocation example (C++03)],
+[link boost_asio.examples.cpp11_examples.allocation custom memory allocation example (C++11)].
[endsect]
diff --git a/libs/asio/doc/overview/async.qbk b/libs/asio/doc/overview/async.qbk
index 090586f009..0d0a0828f2 100644
--- a/libs/asio/doc/overview/async.qbk
+++ b/libs/asio/doc/overview/async.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/overview/basics.qbk b/libs/asio/doc/overview/basics.qbk
index 9a5405c2d8..80c1b1a284 100644
--- a/libs/asio/doc/overview/basics.qbk
+++ b/libs/asio/doc/overview/basics.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/overview/bsd_sockets.qbk b/libs/asio/doc/overview/bsd_sockets.qbk
index 6783b0c06d..0bf53c3f16 100644
--- a/libs/asio/doc/overview/bsd_sockets.qbk
+++ b/libs/asio/doc/overview/bsd_sockets.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/overview/buffers.qbk b/libs/asio/doc/overview/buffers.qbk
index aac923700e..4de9440600 100644
--- a/libs/asio/doc/overview/buffers.qbk
+++ b/libs/asio/doc/overview/buffers.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -157,6 +157,7 @@ It can also be explicitly disabled by defining `BOOST_ASIO_DISABLE_BUFFER_DEBUGG
[link boost_asio.reference.streambuf streambuf],
[link boost_asio.reference.ConstBufferSequence ConstBufferSequence],
[link boost_asio.reference.MutableBufferSequence MutableBufferSequence],
-[link boost_asio.examples.buffers buffers example].
+[link boost_asio.examples.cpp03_examples.buffers buffers example (C++03)],
+[link boost_asio.examples.cpp11_examples.buffers buffers example (c++11)].
[endsect]
diff --git a/libs/asio/doc/overview/coroutine.qbk b/libs/asio/doc/overview/coroutine.qbk
new file mode 100644
index 0000000000..8090a48df6
--- /dev/null
+++ b/libs/asio/doc/overview/coroutine.qbk
@@ -0,0 +1,51 @@
+[/
+ / Copyright (c) 2003-2014 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)
+ /]
+
+[section:coroutine Stackless Coroutines]
+
+The [link boost_asio.reference.coroutine `coroutine`] class provides support for
+stackless coroutines. Stackless coroutines enable programs to implement
+asynchronous logic in a synchronous manner, with minimal overhead, as shown in
+the following example:
+
+ struct session : boost::asio::coroutine
+ {
+ boost::shared_ptr<tcp::socket> socket_;
+ boost::shared_ptr<std::vector<char> > buffer_;
+
+ session(boost::shared_ptr<tcp::socket> socket)
+ : socket_(socket),
+ buffer_(new std::vector<char>(1024))
+ {
+ }
+
+ void operator()(boost::system::error_code ec = boost::system::error_code(), std::size_t n = 0)
+ {
+ if (!ec) reenter (this)
+ {
+ for (;;)
+ {
+ yield socket_->async_read_some(boost::asio::buffer(*buffer_), *this);
+ yield boost::asio::async_write(*socket_, boost::asio::buffer(*buffer_, n), *this);
+ }
+ }
+ }
+ };
+
+The `coroutine` class is used in conjunction with the pseudo-keywords
+`reenter`, `yield` and `fork`. These are preprocessor macros, and are
+implemented in terms of a `switch` statement using a technique similar to
+Duff's Device. The [link boost_asio.reference.coroutine `coroutine`] class's
+documentation provides a complete description of these pseudo-keywords.
+
+[heading See Also]
+
+[link boost_asio.reference.coroutine coroutine],
+[link boost_asio.examples.cpp03_examples.http_server_4 HTTP Server 4 example],
+[link boost_asio.overview.core.spawn Stackful Coroutines].
+
+[endsect]
diff --git a/libs/asio/doc/overview/cpp2011.qbk b/libs/asio/doc/overview/cpp2011.qbk
index 6e88af4352..161e72d8d2 100644
--- a/libs/asio/doc/overview/cpp2011.qbk
+++ b/libs/asio/doc/overview/cpp2011.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -22,6 +22,8 @@
[link boost_asio.overview.cpp2011.chrono Chrono]
+[link boost_asio.overview.cpp2011.futures Futures]
+
[section:move_objects Movable I/O Objects]
@@ -216,4 +218,37 @@ class template may be used with either.
[endsect]
+[section:futures Futures]
+
+The `boost::asio::use_future` special value provides first-class support for returning a
+C++11 `std::future` from an asynchronous operation's initiating function.
+
+To use `boost::asio::use_future`, pass it to an asynchronous operation instead of
+a normal completion handler. For example:
+
+ std::future<std::size_t> length =
+ my_socket.async_read_some(my_buffer, boost::asio::use_future);
+
+Where a handler signature has the form:
+
+ void handler(boost::system::error_code ec, result_type result);
+
+the initiating function returns a `std::future` templated on `result_type`.
+In the above example, this is `std::size_t`. If the asynchronous operation
+fails, the `error_code` is converted into a `system_error` exception and
+passed back to the caller through the future.
+
+Where a handler signature has the form:
+
+ void handler(boost::system::error_code ec);
+
+the initiating function returns `std::future<void>`. As above, an error
+is passed back in the future as a `system_error` exception.
+
+[link boost_asio.reference.use_future use_future],
+[link boost_asio.reference.use_future_t use_future_t],
+[link boost_asio.examples.cpp11_examples.futures Futures example (C++11)].
+
+[endsect]
+
[endsect]
diff --git a/libs/asio/doc/overview/handler_tracking.qbk b/libs/asio/doc/overview/handler_tracking.qbk
index 6c57853a22..42f52b7ab5 100644
--- a/libs/asio/doc/overview/handler_tracking.qbk
+++ b/libs/asio/doc/overview/handler_tracking.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/overview/implementation.qbk b/libs/asio/doc/overview/implementation.qbk
index 4190773f99..5ec4fa959c 100644
--- a/libs/asio/doc/overview/implementation.qbk
+++ b/libs/asio/doc/overview/implementation.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -226,7 +226,7 @@ Scatter-Gather:
* For sockets, at most 16 buffers may be transferred in a single operation.
-[heading Windows NT, 2000, XP, 2003 and Vista]
+[heading Windows NT, 2000, XP, 2003, Vista, 7 and 8]
Demultiplexing mechanism:
@@ -259,5 +259,47 @@ Scatter-Gather:
* For stream-oriented handles, only one buffer may be transferred in a single
operation.
+[heading Windows Runtime]
+
+Boost.Asio provides limited support for the Windows Runtime. It requires that the
+language extensions be enabled. Due to the restricted facilities exposed by the
+Windows Runtime API, the support comes with the following caveats:
+
+* The core facilities such as the `io_service`, `strand`, buffers, composed
+ operations, timers, etc., should all work as normal.
+
+* For sockets, only client-side TCP is supported.
+
+* Explicit binding of a client-side TCP socket is not supported.
+
+* The `cancel()` function is not supported for sockets. Asynchronous
+ operations may only be cancelled by closing the socket.
+
+* Operations that use `null_buffers` are not supported.
+
+* Only `tcp::no_delay` and `socket_base::keep_alive` options are supported.
+
+* Resolvers do not support service names, only numbers. I.e. you must
+ use "80" rather than "http".
+
+* Most resolver query flags have no effect.
+
+Demultiplexing mechanism:
+
+* Uses the `Windows::Networking::Sockets::StreamSocket` class to implement
+ asynchronous TCP socket operations.
+
+Threads:
+
+* Event completions are delivered to the Windows thread pool and posted to the
+ `io_service` for the handler to be executed.
+
+* An additional thread per `io_service` is used to trigger timers. This thread
+ is created on construction of the first timer objects.
+
+Scatter-Gather:
+
+* For sockets, at most one buffer may be transferred in a single operation.
+
[endsect]
diff --git a/libs/asio/doc/overview/iostreams.qbk b/libs/asio/doc/overview/iostreams.qbk
index f8fd155e75..83c09ee3d0 100644
--- a/libs/asio/doc/overview/iostreams.qbk
+++ b/libs/asio/doc/overview/iostreams.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -62,7 +62,7 @@ retrieve the error code from the most recent system call:
[link boost_asio.reference.ip__tcp.iostream ip::tcp::iostream],
[link boost_asio.reference.basic_socket_iostream basic_socket_iostream],
-[link boost_asio.examples.iostreams iostreams examples].
+[link boost_asio.examples.cpp03_examples.iostreams iostreams examples].
[heading Notes]
diff --git a/libs/asio/doc/overview/line_based.qbk b/libs/asio/doc/overview/line_based.qbk
index a514562460..37390a792c 100644
--- a/libs/asio/doc/overview/line_based.qbk
+++ b/libs/asio/doc/overview/line_based.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -113,6 +113,6 @@ other types the trait must be explicitly specialised, as shown above.
[link boost_asio.reference.is_match_condition is_match_condition],
[link boost_asio.reference.read_until read_until()],
[link boost_asio.reference.streambuf streambuf],
-[link boost_asio.examples.http_client HTTP client example].
+[link boost_asio.examples.cpp03_examples.http_client HTTP client example].
[endsect]
diff --git a/libs/asio/doc/overview/other_protocols.qbk b/libs/asio/doc/overview/other_protocols.qbk
new file mode 100644
index 0000000000..08b54d3a6c
--- /dev/null
+++ b/libs/asio/doc/overview/other_protocols.qbk
@@ -0,0 +1,94 @@
+[/
+ / Copyright (c) 2003-2014 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)
+ /]
+
+[section:other_protocols Support for Other Protocols]
+
+Support for other socket protocols (such as Bluetooth or IRCOMM sockets) can be
+added by implementing the [link boost_asio.reference.Protocol protocol type
+requirements]. However, in many cases these protocols may also be used with
+Boost.Asio's generic protocol support. For this, Boost.Asio provides the following four
+classes:
+
+* [link boost_asio.reference.generic__datagram_protocol `generic::datagram_protocol`]
+* [link boost_asio.reference.generic__raw_protocol `generic::raw_protocol`]
+* [link boost_asio.reference.generic__seq_packet_protocol `generic::seq_packet_protocol`]
+* [link boost_asio.reference.generic__stream_protocol `generic::stream_protocol`]
+
+These classes implement the [link boost_asio.reference.Protocol protocol type
+requirements], but allow the user to specify the address family (e.g. `AF_INET`)
+and protocol type (e.g. `IPPROTO_TCP`) at runtime. For example:
+
+ boost::asio::generic::stream_protocol::socket my_socket(my_io_service);
+ my_socket.open(boost::asio::generic::stream_protocol(AF_INET, IPPROTO_TCP));
+ ...
+
+An endpoint class template, [link boost_asio.reference.generic__basic_endpoint
+`boost::asio::generic::basic_endpoint`], is included to support these protocol
+classes. This endpoint can hold any other endpoint type, provided its native
+representation fits into a `sockaddr_storage` object. This class will also
+convert from other types that implement the [link boost_asio.reference.Endpoint
+endpoint] type requirements:
+
+ boost::asio::ip::tcp::endpoint my_endpoint1 = ...;
+ boost::asio::generic::stream_protocol::endpoint my_endpoint2(my_endpoint1);
+
+The conversion is implicit, so as to support the following use cases:
+
+ boost::asio::generic::stream_protocol::socket my_socket(my_io_service);
+ boost::asio::ip::tcp::endpoint my_endpoint = ...;
+ my_socket.connect(my_endpoint);
+
+[heading C++11 Move Construction]
+
+When using C++11, it is possible to perform move construction from a socket (or
+acceptor) object to convert to the more generic protocol's socket (or acceptor)
+type. If the protocol conversion is valid:
+
+ Protocol1 p1 = ...;
+ Protocol2 p2(p1);
+
+then the corresponding socket conversion is allowed:
+
+ Protocol1::socket my_socket1(my_io_service);
+ ...
+ Protocol2::socket my_socket2(std::move(my_socket1));
+
+For example, one possible conversion is from a TCP socket to a generic
+stream-oriented socket:
+
+ boost::asio::ip::tcp::socket my_socket1(my_io_service);
+ ...
+ boost::asio::generic::stream_protocol::socket my_socket2(std::move(my_socket1));
+
+These conversions are also available for move-assignment.
+
+These conversions are not limited to the above generic protocol classes.
+User-defined protocols may take advantage of this feature by similarly ensuring
+the conversion from `Protocol1` to `Protocol2` is valid, as above.
+
+[heading Accepting Generic Sockets]
+
+As a convenience, a socket acceptor's `accept()` and `async_accept()` functions
+can directly accept into a different protocol's socket type, provided the
+corresponding protocol conversion is valid. For example, the following is
+supported because the protocol `boost::asio::ip::tcp` is convertible to
+`boost::asio::generic::stream_protocol`:
+
+ boost::asio::ip::tcp::acceptor my_acceptor(my_io_service);
+ ...
+ boost::asio::generic::stream_protocol::socket my_socket(my_io_service);
+ my_acceptor.accept(my_socket);
+
+[heading See Also]
+
+[link boost_asio.reference.generic__datagram_protocol `generic::datagram_protocol`],
+[link boost_asio.reference.generic__raw_protocol `generic::raw_protocol`],
+[link boost_asio.reference.generic__seq_packet_protocol `generic::seq_packet_protocol`],
+[link boost_asio.reference.generic__stream_protocol `generic::stream_protocol`],
+[link boost_asio.reference.Protocol protocol type requirements].
+
+[endsect]
diff --git a/libs/asio/doc/overview/posix.qbk b/libs/asio/doc/overview/posix.qbk
index babf710d67..2a9363660e 100644
--- a/libs/asio/doc/overview/posix.qbk
+++ b/libs/asio/doc/overview/posix.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -48,7 +48,7 @@ A client that connects to this server might look like:
Transmission of file descriptors or credentials across UNIX domain sockets is
not directly supported within Boost.Asio, but may be achieved by accessing the
socket's underlying descriptor using the [link
-boost_asio.reference.basic_socket.native native()] member function.
+boost_asio.reference.basic_socket.native_handle native_handle()] member function.
[heading See Also]
@@ -61,7 +61,7 @@ boost_asio.reference.basic_socket.native native()] member function.
[link boost_asio.reference.local__stream_protocol.endpoint local::stream_protocol::endpoint],
[link boost_asio.reference.local__stream_protocol.iostream local::stream_protocol::iostream],
[link boost_asio.reference.local__stream_protocol.socket local::stream_protocol::socket],
-[link boost_asio.examples.unix_domain_sockets UNIX domain sockets examples].
+[link boost_asio.examples.cpp03_examples.unix_domain_sockets UNIX domain sockets examples].
[heading Notes]
@@ -95,7 +95,8 @@ boost_asio.reference.async_read_until async_read_until()] free functions.
[link boost_asio.reference.posix__stream_descriptor posix::stream_descriptor],
[link boost_asio.reference.posix__basic_stream_descriptor posix::basic_stream_descriptor],
[link boost_asio.reference.posix__stream_descriptor_service posix::stream_descriptor_service],
-[link boost_asio.examples.chat Chat example].
+[link boost_asio.examples.cpp03_examples.chat Chat example (C++03)],
+[link boost_asio.examples.cpp11_examples.chat Chat example (C++11)].
[heading Notes]
@@ -138,7 +139,7 @@ as required.
[link boost_asio.reference.io_service.notify_fork io_service::notify_fork()],
[link boost_asio.reference.io_service.fork_event io_service::fork_event],
[link boost_asio.reference.io_service__service.fork_service io_service::service::fork_service()],
-[link boost_asio.examples.fork Fork examples].
+[link boost_asio.examples.cpp03_examples.fork Fork examples].
[endsect]
diff --git a/libs/asio/doc/overview/protocols.qbk b/libs/asio/doc/overview/protocols.qbk
index 210bc7aa21..94f0d94531 100644
--- a/libs/asio/doc/overview/protocols.qbk
+++ b/libs/asio/doc/overview/protocols.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -138,18 +138,12 @@ boost_asio.reference.basic_raw_socket.async_receive_from async_receive_from()],
boost_asio.reference.basic_raw_socket.async_send_to async_send_to()] member
functions.
-[heading Other Protocols]
-
-Support for other socket protocols (such as Bluetooth or IRCOMM sockets) can be
-added by implementing the [link boost_asio.reference.Protocol Protocol] type
-requirements.
-
[heading See Also]
[link boost_asio.reference.ip__tcp ip::tcp],
[link boost_asio.reference.ip__udp ip::udp],
[link boost_asio.reference.ip__icmp ip::icmp],
[link boost_asio.tutorial.tutdaytime1 daytime protocol tutorials],
-[link boost_asio.examples.icmp ICMP ping example].
+[link boost_asio.examples.cpp03_examples.icmp ICMP ping example].
[endsect]
diff --git a/libs/asio/doc/overview/rationale.qbk b/libs/asio/doc/overview/rationale.qbk
index 9fc1be4785..9efc080a77 100644
--- a/libs/asio/doc/overview/rationale.qbk
+++ b/libs/asio/doc/overview/rationale.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/overview/reactor.qbk b/libs/asio/doc/overview/reactor.qbk
index 90bfc1a4a4..950df9c16d 100644
--- a/libs/asio/doc/overview/reactor.qbk
+++ b/libs/asio/doc/overview/reactor.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -39,6 +39,6 @@ stream-oriented descriptor classes.
[link boost_asio.reference.null_buffers null_buffers],
[link boost_asio.reference.basic_socket.non_blocking basic_socket::non_blocking()],
[link boost_asio.reference.basic_socket.native_non_blocking basic_socket::native_non_blocking()],
-[link boost_asio.examples.nonblocking nonblocking example].
+[link boost_asio.examples.cpp03_examples.nonblocking nonblocking example].
[endsect]
diff --git a/libs/asio/doc/overview/serial_ports.qbk b/libs/asio/doc/overview/serial_ports.qbk
index 79ac486f7a..52016059b2 100644
--- a/libs/asio/doc/overview/serial_ports.qbk
+++ b/libs/asio/doc/overview/serial_ports.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -42,6 +42,6 @@ port's baud rate, flow control type, parity, stop bits and character size.
Serial ports are available on all POSIX platforms. For Windows, serial ports
are only available at compile time when the I/O completion port backend is used
(which is the default). A program may test for the macro
-`BOOST_ASIO_HAS_SERIAL_PORTS` to determine whether they are supported.
+`BOOST_ASIO_HAS_SERIAL_PORT` to determine whether they are supported.
[endsect]
diff --git a/libs/asio/doc/overview/signals.qbk b/libs/asio/doc/overview/signals.qbk
index 6788b69dbf..201aef8b27 100644
--- a/libs/asio/doc/overview/signals.qbk
+++ b/libs/asio/doc/overview/signals.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -38,6 +38,7 @@ library maps console events like Ctrl+C to the equivalent signal.
[heading See Also]
[link boost_asio.reference.signal_set signal_set],
-[link boost_asio.examples.http_server HTTP server example].
+[link boost_asio.examples.cpp03_examples.http_server HTTP server example (C++03)],
+[link boost_asio.examples.cpp11_examples.http_server HTTP server example (C++11)].
[endsect]
diff --git a/libs/asio/doc/overview/spawn.qbk b/libs/asio/doc/overview/spawn.qbk
new file mode 100644
index 0000000000..5f78a9435e
--- /dev/null
+++ b/libs/asio/doc/overview/spawn.qbk
@@ -0,0 +1,102 @@
+[/
+ / Copyright (c) 2003-2014 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)
+ /]
+
+[section:spawn Stackful Coroutines]
+
+The [link boost_asio.reference.spawn `spawn()`] function is a high-level wrapper for
+running stackful coroutines. It is based on the Boost.Coroutine library. The
+`spawn()` function enables programs to implement asynchronous logic in a
+synchronous manner, as shown in the following example:
+
+ boost::asio::spawn(my_strand, do_echo);
+
+ // ...
+
+ void do_echo(boost::asio::yield_context yield)
+ {
+ try
+ {
+ char data[128];
+ for (;;)
+ {
+ std::size_t length =
+ my_socket.async_read_some(
+ boost::asio::buffer(data), yield);
+
+ boost::asio::async_write(my_socket,
+ boost::asio::buffer(data, length), yield);
+ }
+ }
+ catch (std::exception& e)
+ {
+ // ...
+ }
+ }
+
+The first argument to `spawn()` may be a
+[link boost_asio.reference.io_service__strand `strand`],
+[link boost_asio.reference.io_service `io_service`], or
+[link boost_asio.reference.CompletionHandler completion handler].
+This argument determines the context in which the coroutine is permitted to
+execute. For example, a server's per-client object may consist of multiple
+coroutines; they should all run on the same `strand` so that no explicit
+synchronisation is required.
+
+The second argument is a function object with signature:
+
+ void coroutine(boost::asio::yield_context yield);
+
+that specifies the code to be run as part of the coroutine. The parameter
+`yield` may be passed to an asynchronous operation in place of the completion
+handler, as in:
+
+ std::size_t length =
+ my_socket.async_read_some(
+ boost::asio::buffer(data), yield);
+
+This starts the asynchronous operation and suspends the coroutine. The
+coroutine will be resumed automatically when the asynchronous operation
+completes.
+
+Where an asynchronous operation's handler signature has the form:
+
+ void handler(boost::system::error_code ec, result_type result);
+
+the initiating function returns the result_type. In the `async_read_some`
+example above, this is `size_t`. If the asynchronous operation fails, the
+`error_code` is converted into a `system_error` exception and thrown.
+
+Where a handler signature has the form:
+
+ void handler(boost::system::error_code ec);
+
+the initiating function returns `void`. As above, an error is passed back to
+the coroutine as a `system_error` exception.
+
+To collect the `error_code` from an operation, rather than have it throw an
+exception, associate the output variable with the `yield_context` as follows:
+
+ boost::system::error_code ec;
+ std::size_t length =
+ my_socket.async_read_some(
+ boost::asio::buffer(data), yield[ec]);
+
+[*Note:] if `spawn()` is used with a custom completion handler of type
+`Handler`, the function object signature is actually:
+
+ void coroutine(boost::asio::basic_yield_context<Handler> yield);
+
+[heading See Also]
+
+[link boost_asio.reference.spawn spawn],
+[link boost_asio.reference.yield_context yield_context],
+[link boost_asio.reference.basic_yield_context basic_yield_context],
+[link boost_asio.examples.cpp03_examples.spawn Spawn example (C++03)],
+[link boost_asio.examples.cpp11_examples.spawn Spawn example (C++11)],
+[link boost_asio.overview.core.coroutine Stackless Coroutines].
+
+[endsect]
diff --git a/libs/asio/doc/overview/ssl.qbk b/libs/asio/doc/overview/ssl.qbk
index 6eecda77f8..c3df1b474a 100644
--- a/libs/asio/doc/overview/ssl.qbk
+++ b/libs/asio/doc/overview/ssl.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -110,7 +110,7 @@ threaded programs.
[link boost_asio.reference.ssl__context ssl::context],
[link boost_asio.reference.ssl__rfc2818_verification ssl::rfc2818_verification],
[link boost_asio.reference.ssl__stream ssl::stream],
-[link boost_asio.examples.ssl SSL example].
+[link boost_asio.examples.cpp03_examples.ssl SSL example].
[heading Notes]
diff --git a/libs/asio/doc/overview/strands.qbk b/libs/asio/doc/overview/strands.qbk
index afdd6e95a9..11d954fe63 100644
--- a/libs/asio/doc/overview/strands.qbk
+++ b/libs/asio/doc/overview/strands.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -57,6 +57,6 @@ the strand.
[link boost_asio.reference.io_service__strand io_service::strand],
[link boost_asio.tutorial.tuttimer5 tutorial Timer.5],
-[link boost_asio.examples.http_server_3 HTTP server 3 example].
+[link boost_asio.examples.cpp03_examples.http_server_3 HTTP server 3 example].
[endsect]
diff --git a/libs/asio/doc/overview/streams.qbk b/libs/asio/doc/overview/streams.qbk
index 137edaf2ec..40dd51bc6d 100644
--- a/libs/asio/doc/overview/streams.qbk
+++ b/libs/asio/doc/overview/streams.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/overview/threads.qbk b/libs/asio/doc/overview/threads.qbk
index 72149600a7..1350d2f8f8 100644
--- a/libs/asio/doc/overview/threads.qbk
+++ b/libs/asio/doc/overview/threads.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/overview/timers.qbk b/libs/asio/doc/overview/timers.qbk
index 025a79e505..6f7a297ecd 100644
--- a/libs/asio/doc/overview/timers.qbk
+++ b/libs/asio/doc/overview/timers.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/overview/windows.qbk b/libs/asio/doc/overview/windows.qbk
index e7294fa183..20dc153c6f 100644
--- a/libs/asio/doc/overview/windows.qbk
+++ b/libs/asio/doc/overview/windows.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/quickref.xml b/libs/asio/doc/quickref.xml
index 1223d31d73..29459aabce 100644
--- a/libs/asio/doc/quickref.xml
+++ b/libs/asio/doc/quickref.xml
@@ -2,7 +2,7 @@
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "../../../tools/boostbook/dtd/boostbook.dtd">
<!--
- Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ Copyright (c) 2003-2014 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)
@@ -28,6 +28,7 @@
<simplelist type="vert" columns="1">
<member><link linkend="boost_asio.reference.const_buffer">const_buffer</link></member>
<member><link linkend="boost_asio.reference.const_buffers_1">const_buffers_1</link></member>
+ <member><link linkend="boost_asio.reference.coroutine">coroutine</link></member>
<member><link linkend="boost_asio.reference.invalid_service_owner">invalid_service_owner</link></member>
<member><link linkend="boost_asio.reference.io_service">io_service</link></member>
<member><link linkend="boost_asio.reference.io_service__id">io_service::id</link></member>
@@ -39,11 +40,14 @@
<member><link linkend="boost_asio.reference.null_buffers">null_buffers</link></member>
<member><link linkend="boost_asio.reference.service_already_exists">service_already_exists</link></member>
<member><link linkend="boost_asio.reference.streambuf">streambuf</link></member>
+ <member><link linkend="boost_asio.reference.use_future_t">use_future_t</link></member>
+ <member><link linkend="boost_asio.reference.yield_context">yield_context</link></member>
</simplelist>
<bridgehead renderas="sect3">Class Templates</bridgehead>
<simplelist type="vert" columns="1">
<member><link linkend="boost_asio.reference.basic_io_object">basic_io_object</link></member>
<member><link linkend="boost_asio.reference.basic_streambuf">basic_streambuf</link></member>
+ <member><link linkend="boost_asio.reference.basic_yield_context">basic_yield_context</link></member>
<member><link linkend="boost_asio.reference.buffered_read_stream">buffered_read_stream</link></member>
<member><link linkend="boost_asio.reference.buffered_stream">buffered_stream</link></member>
<member><link linkend="boost_asio.reference.buffered_write_stream">buffered_write_stream</link></member>
@@ -57,6 +61,7 @@
<member><link linkend="boost_asio.reference.asio_handler_allocate">asio_handler_allocate</link></member>
<member><link linkend="boost_asio.reference.asio_handler_deallocate">asio_handler_deallocate</link></member>
<member><link linkend="boost_asio.reference.asio_handler_invoke">asio_handler_invoke</link></member>
+ <member><link linkend="boost_asio.reference.asio_handler_is_continuation">asio_handler_is_continuation</link></member>
<member><link linkend="boost_asio.reference.async_read">async_read</link></member>
<member><link linkend="boost_asio.reference.async_read_at">async_read_at</link></member>
<member><link linkend="boost_asio.reference.async_read_until">async_read_until</link></member>
@@ -72,6 +77,7 @@
<member><link linkend="boost_asio.reference.read">read</link></member>
<member><link linkend="boost_asio.reference.read_at">read_at</link></member>
<member><link linkend="boost_asio.reference.read_until">read_until</link></member>
+ <member><link linkend="boost_asio.reference.spawn">spawn</link></member>
<member><link linkend="boost_asio.reference.transfer_all">transfer_all</link></member>
<member><link linkend="boost_asio.reference.transfer_at_least">transfer_at_least</link></member>
<member><link linkend="boost_asio.reference.transfer_exactly">transfer_exactly</link></member>
@@ -81,7 +87,11 @@
</simplelist>
</entry>
<entry valign="top">
- <bridgehead renderas="sect3">Placeholders</bridgehead>
+ <bridgehead renderas="sect3">Special Values</bridgehead>
+ <simplelist type="vert" columns="1">
+ <member><link linkend="boost_asio.reference.use_future">use_future</link></member>
+ </simplelist>
+ <bridgehead renderas="sect3">Boost.Bind Placeholders</bridgehead>
<simplelist type="vert" columns="1">
<member><link linkend="boost_asio.reference.placeholders__bytes_transferred">placeholders::bytes_transferred</link></member>
<member><link linkend="boost_asio.reference.placeholders__error">placeholders::error</link></member>
@@ -97,6 +107,8 @@
</simplelist>
<bridgehead renderas="sect3">Type Traits</bridgehead>
<simplelist type="vert" columns="1">
+ <member><link linkend="boost_asio.reference.async_result">async_result</link></member>
+ <member><link linkend="boost_asio.reference.handler_type">handler_type</link></member>
<member><link linkend="boost_asio.reference.is_match_condition">is_match_condition</link></member>
<member><link linkend="boost_asio.reference.is_read_buffered">is_read_buffered</link></member>
<member><link linkend="boost_asio.reference.is_write_buffered">is_write_buffered</link></member>
@@ -146,6 +158,19 @@
<entry valign="top">
<bridgehead renderas="sect3">Classes</bridgehead>
<simplelist type="vert" columns="1">
+ <member><link linkend="boost_asio.reference.generic__datagram_protocol">generic::datagram_protocol</link></member>
+ <member><link linkend="boost_asio.reference.generic__datagram_protocol.endpoint">generic::datagram_protocol::endpoint</link></member>
+ <member><link linkend="boost_asio.reference.generic__datagram_protocol.socket">generic::datagram_protocol::socket</link></member>
+ <member><link linkend="boost_asio.reference.generic__raw_protocol">generic::raw_protocol</link></member>
+ <member><link linkend="boost_asio.reference.generic__raw_protocol.endpoint">generic::raw_protocol::endpoint</link></member>
+ <member><link linkend="boost_asio.reference.generic__raw_protocol.socket">generic::raw_protocol::socket</link></member>
+ <member><link linkend="boost_asio.reference.generic__seq_packet_protocol">generic::seq_packet_protocol</link></member>
+ <member><link linkend="boost_asio.reference.generic__seq_packet_protocol.endpoint">generic::seq_packet_protocol::endpoint</link></member>
+ <member><link linkend="boost_asio.reference.generic__seq_packet_protocol.socket">generic::seq_packet_protocol::socket</link></member>
+ <member><link linkend="boost_asio.reference.generic__stream_protocol">generic::stream_protocol</link></member>
+ <member><link linkend="boost_asio.reference.generic__stream_protocol.endpoint">generic::stream_protocol::endpoint</link></member>
+ <member><link linkend="boost_asio.reference.generic__stream_protocol.iostream">generic::stream_protocol::iostream</link></member>
+ <member><link linkend="boost_asio.reference.generic__stream_protocol.socket">generic::stream_protocol::socket</link></member>
<member><link linkend="boost_asio.reference.ip__address">ip::address</link></member>
<member><link linkend="boost_asio.reference.ip__address_v4">ip::address_v4</link></member>
<member><link linkend="boost_asio.reference.ip__address_v6">ip::address_v6</link></member>
@@ -166,18 +191,17 @@
<member><link linkend="boost_asio.reference.ip__udp.socket">ip::udp::socket</link></member>
<member><link linkend="boost_asio.reference.socket_base">socket_base</link></member>
</simplelist>
+ </entry>
+ <entry valign="top">
<bridgehead renderas="sect3">Free Functions</bridgehead>
<simplelist type="vert" columns="1">
<member><link linkend="boost_asio.reference.async_connect">async_connect</link></member>
<member><link linkend="boost_asio.reference.connect">connect</link></member>
<member><link linkend="boost_asio.reference.ip__host_name">ip::host_name</link></member>
</simplelist>
- </entry>
- <entry valign="top">
<bridgehead renderas="sect3">Class Templates</bridgehead>
<simplelist type="vert" columns="1">
<member><link linkend="boost_asio.reference.basic_datagram_socket">basic_datagram_socket</link></member>
- <member><link linkend="boost_asio.reference.basic_deadline_timer">basic_deadline_timer</link></member>
<member><link linkend="boost_asio.reference.basic_raw_socket">basic_raw_socket</link></member>
<member><link linkend="boost_asio.reference.basic_seq_packet_socket">basic_seq_packet_socket</link></member>
<member><link linkend="boost_asio.reference.basic_socket">basic_socket</link></member>
@@ -185,6 +209,7 @@
<member><link linkend="boost_asio.reference.basic_socket_iostream">basic_socket_iostream</link></member>
<member><link linkend="boost_asio.reference.basic_socket_streambuf">basic_socket_streambuf</link></member>
<member><link linkend="boost_asio.reference.basic_stream_socket">basic_stream_socket</link></member>
+ <member><link linkend="boost_asio.reference.generic__basic_endpoint">generic::basic_endpoint</link></member>
<member><link linkend="boost_asio.reference.ip__basic_endpoint">ip::basic_endpoint</link></member>
<member><link linkend="boost_asio.reference.ip__basic_resolver">ip::basic_resolver</link></member>
<member><link linkend="boost_asio.reference.ip__basic_resolver_entry">ip::basic_resolver_entry</link></member>
@@ -322,6 +347,7 @@
</simplelist>
<bridgehead renderas="sect3">Type Requirements</bridgehead>
<simplelist type="vert" columns="1">
+ <member><link linkend="boost_asio.reference.BufferedHandshakeHandler">BufferedHandshakeHandler</link></member>
<member><link linkend="boost_asio.reference.HandshakeHandler">HandshakeHandler</link></member>
<member><link linkend="boost_asio.reference.ShutdownHandler">ShutdownHandler</link></member>
</simplelist>
diff --git a/libs/asio/doc/reference.dox b/libs/asio/doc/reference.dox
index a854f5aac3..618b4a782c 100644
--- a/libs/asio/doc/reference.dox
+++ b/libs/asio/doc/reference.dox
@@ -74,6 +74,7 @@ WARN_LOGFILE =
#---------------------------------------------------------------------------
INPUT = ./../../../boost/asio.hpp \
./../../../boost/asio \
+ ./../../../boost/asio/generic \
./../../../boost/asio/impl \
./../../../boost/asio/ip \
./../../../boost/asio/local \
@@ -193,7 +194,11 @@ PREDEFINED = GENERATING_DOCUMENTATION \
BOOST_ASIO_SOCKET_ERROR(e)=implementation_defined \
BOOST_ASIO_NETDB_ERROR(e)=implementation_defined \
BOOST_ASIO_EOF_ERROR(e)=implementation_defined \
- BOOST_ASIO_OS_ERROR(e1,e2)=implementation_defined
+ BOOST_ASIO_OS_ERROR(e1,e2)=implementation_defined \
+ BOOST_ASIO_MOVE_ARG(a)=a \
+ BOOST_ASIO_DECL= \
+ BOOST_ASIO_CONSTEXPR=constexpr \
+ BOOST_ASIO_INITFN_RESULT_TYPE(t,a)=void_or_deduced
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
diff --git a/libs/asio/doc/reference.qbk b/libs/asio/doc/reference.qbk
index c4319f7826..9e7862bfee 100644
--- a/libs/asio/doc/reference.qbk
+++ b/libs/asio/doc/reference.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -15,6 +15,7 @@
[include requirements/AsyncRandomAccessWriteDevice.qbk]
[include requirements/AsyncReadStream.qbk]
[include requirements/AsyncWriteStream.qbk]
+[include requirements/BufferedHandshakeHandler.qbk]
[include requirements/CompletionHandler.qbk]
[include requirements/ComposedConnectHandler.qbk]
[include requirements/ConnectHandler.qbk]
@@ -111,9 +112,9 @@ This function is used to add a service to the [link boost_asio.reference.io_serv
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -135,12 +136,7 @@ Asynchronous operations may need to allocate temporary objects. Since asynchrono
Implement asio\_handler\_allocate and asio\_handler\_deallocate for your own handlers to provide custom allocation for these temporary objects.
-This default implementation is simply:
-
- return ::operator new(size);
-
-
-
+The default implementation of these allocation hooks uses `operator new` and `operator delete`.
[heading Remarks]
@@ -172,9 +168,9 @@ All temporary objects associated with a handler will be deallocated before the u
[heading Requirements]
-[*Header: ][^boost/asio/handler_alloc_hook.hpp]
+['Header: ][^boost/asio/handler_alloc_hook.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -195,39 +191,40 @@ Default deallocation function for handlers.
Implement asio\_handler\_allocate and asio\_handler\_deallocate for your own handlers to provide custom allocation for the associated temporary objects.
-This default implementation is simply:
-
- ::operator delete(pointer);
-
-
-
+The default implementation of these allocation hooks uses `operator new` and `operator delete`.
[heading Requirements]
-[*Header: ][^boost/asio/handler_alloc_hook.hpp]
+['Header: ][^boost/asio/handler_alloc_hook.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
-
[section:asio_handler_invoke asio_handler_invoke]
[indexterm1 asio_handler_invoke]
Default invoke function for handlers.
-
+
template<
typename Function>
- void asio_handler_invoke(
- Function function,
+ void ``[link boost_asio.reference.asio_handler_invoke.overload1 asio_handler_invoke]``(
+ Function & function,
... );
+ `` [''''&raquo;''' [link boost_asio.reference.asio_handler_invoke.overload1 more...]]``
+ template<
+ typename Function>
+ void ``[link boost_asio.reference.asio_handler_invoke.overload2 asio_handler_invoke]``(
+ const Function & function,
+ ... );
+ `` [''''&raquo;''' [link boost_asio.reference.asio_handler_invoke.overload2 more...]]``
Completion handlers for asynchronous operations are invoked by the [link boost_asio.reference.io_service `io_service`] associated with the corresponding object (e.g. a socket or deadline\_timer). Certain guarantees are made on when the handler may be invoked, in particular that a handler can only be invoked from a thread that is currently calling `run()` on the corresponding [link boost_asio.reference.io_service `io_service`] object. Handlers may subsequently be invoked through other objects (such as [link boost_asio.reference.io_service__strand `io_service::strand`] objects) that provide additional guarantees.
@@ -235,12 +232,12 @@ When asynchronous operations are composed from other asynchronous operations, al
Implement asio\_handler\_invoke for your own handlers to specify a custom invocation strategy.
-This default implementation is simply:
-
- function();
+This default implementation invokes the function object like so:
+ function();
+If necessary, the default implementation makes a copy of the function object so that the non-const operator() can be used.
[heading Example]
@@ -262,9 +259,87 @@ This default implementation is simply:
[heading Requirements]
-[*Header: ][^boost/asio/handler_invoke_hook.hpp]
+['Header: ][^boost/asio/handler_invoke_hook.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[section:overload1 asio_handler_invoke (1 of 2 overloads)]
+
+
+Default handler invocation hook used for non-const function objects.
+
+
+ template<
+ typename Function>
+ void asio_handler_invoke(
+ Function & function,
+ ... );
+
+
+
+[endsect]
+
+
+
+[section:overload2 asio_handler_invoke (2 of 2 overloads)]
+
+
+Default handler invocation hook used for const function objects.
+
+
+ template<
+ typename Function>
+ void asio_handler_invoke(
+ const Function & function,
+ ... );
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:asio_handler_is_continuation asio_handler_is_continuation]
+
+[indexterm1 asio_handler_is_continuation]
+Default continuation function for handlers.
+
+
+ bool asio_handler_is_continuation(
+ ... );
+
+
+Asynchronous operations may represent a continuation of the asynchronous control flow associated with the current handler. The implementation can use this knowledge to optimise scheduling of the handler.
+
+Implement asio\_handler\_is\_continuation for your own handlers to indicate when a handler represents a continuation.
+
+The default implementation of the continuation hook returns `false`.
+
+
+[heading Example]
+
+
+
+ class my_handler;
+
+ bool asio_handler_is_continuation(my_handler* context)
+ {
+ return true;
+ }
+
+
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/handler_continuation_hook.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -281,7 +356,7 @@ Asynchronously establishes a socket connection by trying each endpoint in a sequ
typename ``[link boost_asio.reference.SocketService SocketService]``,
typename Iterator,
typename ``[link boost_asio.reference.ComposedConnectHandler ComposedConnectHandler]``>
- void ``[link boost_asio.reference.async_connect.overload1 async_connect]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_connect.overload1 async_connect]``(
basic_socket< Protocol, SocketService > & s,
Iterator begin,
ComposedConnectHandler handler);
@@ -292,7 +367,7 @@ Asynchronously establishes a socket connection by trying each endpoint in a sequ
typename ``[link boost_asio.reference.SocketService SocketService]``,
typename Iterator,
typename ``[link boost_asio.reference.ComposedConnectHandler ComposedConnectHandler]``>
- void ``[link boost_asio.reference.async_connect.overload2 async_connect]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_connect.overload2 async_connect]``(
basic_socket< Protocol, SocketService > & s,
Iterator begin,
Iterator end,
@@ -305,7 +380,7 @@ Asynchronously establishes a socket connection by trying each endpoint in a sequ
typename Iterator,
typename ConnectCondition,
typename ``[link boost_asio.reference.ComposedConnectHandler ComposedConnectHandler]``>
- void ``[link boost_asio.reference.async_connect.overload3 async_connect]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_connect.overload3 async_connect]``(
basic_socket< Protocol, SocketService > & s,
Iterator begin,
ConnectCondition connect_condition,
@@ -318,7 +393,7 @@ Asynchronously establishes a socket connection by trying each endpoint in a sequ
typename Iterator,
typename ConnectCondition,
typename ``[link boost_asio.reference.ComposedConnectHandler ComposedConnectHandler]``>
- void ``[link boost_asio.reference.async_connect.overload4 async_connect]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_connect.overload4 async_connect]``(
basic_socket< Protocol, SocketService > & s,
Iterator begin,
Iterator end,
@@ -328,9 +403,9 @@ Asynchronously establishes a socket connection by trying each endpoint in a sequ
[heading Requirements]
-[*Header: ][^boost/asio/connect.hpp]
+['Header: ][^boost/asio/connect.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 async_connect (1 of 4 overloads)]
@@ -344,7 +419,7 @@ Asynchronously establishes a socket connection by trying each endpoint in a sequ
typename ``[link boost_asio.reference.SocketService SocketService]``,
typename Iterator,
typename ``[link boost_asio.reference.ComposedConnectHandler ComposedConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
basic_socket< Protocol, SocketService > & s,
Iterator begin,
ComposedConnectHandler handler);
@@ -439,7 +514,7 @@ Asynchronously establishes a socket connection by trying each endpoint in a sequ
typename ``[link boost_asio.reference.SocketService SocketService]``,
typename Iterator,
typename ``[link boost_asio.reference.ComposedConnectHandler ComposedConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
basic_socket< Protocol, SocketService > & s,
Iterator begin,
Iterator end,
@@ -534,7 +609,7 @@ Asynchronously establishes a socket connection by trying each endpoint in a sequ
typename Iterator,
typename ConnectCondition,
typename ``[link boost_asio.reference.ComposedConnectHandler ComposedConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
basic_socket< Protocol, SocketService > & s,
Iterator begin,
ConnectCondition connect_condition,
@@ -664,7 +739,7 @@ Asynchronously establishes a socket connection by trying each endpoint in a sequ
typename Iterator,
typename ConnectCondition,
typename ``[link boost_asio.reference.ComposedConnectHandler ComposedConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
basic_socket< Protocol, SocketService > & s,
Iterator begin,
Iterator end,
@@ -792,7 +867,7 @@ Start an asynchronous operation to read a certain amount of data from a stream.
typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read.overload1 async_read]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read.overload1 async_read]``(
AsyncReadStream & s,
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -803,7 +878,7 @@ Start an asynchronous operation to read a certain amount of data from a stream.
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename CompletionCondition,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read.overload2 async_read]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read.overload2 async_read]``(
AsyncReadStream & s,
const MutableBufferSequence & buffers,
CompletionCondition completion_condition,
@@ -814,7 +889,7 @@ Start an asynchronous operation to read a certain amount of data from a stream.
typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
typename Allocator,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read.overload3 async_read]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read.overload3 async_read]``(
AsyncReadStream & s,
basic_streambuf< Allocator > & b,
ReadHandler handler);
@@ -825,7 +900,7 @@ Start an asynchronous operation to read a certain amount of data from a stream.
typename Allocator,
typename CompletionCondition,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read.overload4 async_read]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read.overload4 async_read]``(
AsyncReadStream & s,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
@@ -834,9 +909,9 @@ Start an asynchronous operation to read a certain amount of data from a stream.
[heading Requirements]
-[*Header: ][^boost/asio/read.hpp]
+['Header: ][^boost/asio/read.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 async_read (1 of 4 overloads)]
@@ -849,7 +924,7 @@ Start an asynchronous operation to read a certain amount of data from a stream.
typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read(
AsyncReadStream & s,
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -863,7 +938,7 @@ This function is used to asynchronously read a certain number of bytes of data f
* An error occurred.
-This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a [*composed operation]. The program must ensure that the stream performs no other read operations (such as async\_read, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
+This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a ['composed operation]. The program must ensure that the stream performs no other read operations (such as async\_read, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
[heading Parameters]
@@ -932,7 +1007,7 @@ Start an asynchronous operation to read a certain amount of data from a stream.
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename CompletionCondition,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read(
AsyncReadStream & s,
const MutableBufferSequence & buffers,
CompletionCondition completion_condition,
@@ -1015,7 +1090,7 @@ Start an asynchronous operation to read a certain amount of data from a stream.
typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
typename Allocator,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read(
AsyncReadStream & s,
basic_streambuf< Allocator > & b,
ReadHandler handler);
@@ -1029,7 +1104,7 @@ This function is used to asynchronously read a certain number of bytes of data f
* An error occurred.
-This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a [*composed operation]. The program must ensure that the stream performs no other read operations (such as async\_read, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
+This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a ['composed operation]. The program must ensure that the stream performs no other read operations (such as async\_read, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
[heading Parameters]
@@ -1088,7 +1163,7 @@ Start an asynchronous operation to read a certain amount of data from a stream.
typename Allocator,
typename CompletionCondition,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read(
AsyncReadStream & s,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
@@ -1103,7 +1178,7 @@ This function is used to asynchronously read a certain number of bytes of data f
* The completion\_condition function object returns 0.
-This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a [*composed operation]. The program must ensure that the stream performs no other read operations (such as async\_read, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
+This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a ['composed operation]. The program must ensure that the stream performs no other read operations (such as async\_read, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
[heading Parameters]
@@ -1161,9 +1236,9 @@ Start an asynchronous operation to read a certain amount of data at the specifie
typename ``[link boost_asio.reference.AsyncRandomAccessReadDevice AsyncRandomAccessReadDevice]``,
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read_at.overload1 async_read_at]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read_at.overload1 async_read_at]``(
AsyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
ReadHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.async_read_at.overload1 more...]]``
@@ -1173,9 +1248,9 @@ Start an asynchronous operation to read a certain amount of data at the specifie
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename CompletionCondition,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read_at.overload2 async_read_at]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read_at.overload2 async_read_at]``(
AsyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
CompletionCondition completion_condition,
ReadHandler handler);
@@ -1185,9 +1260,9 @@ Start an asynchronous operation to read a certain amount of data at the specifie
typename ``[link boost_asio.reference.AsyncRandomAccessReadDevice AsyncRandomAccessReadDevice]``,
typename Allocator,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read_at.overload3 async_read_at]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read_at.overload3 async_read_at]``(
AsyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
ReadHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.async_read_at.overload3 more...]]``
@@ -1197,9 +1272,9 @@ Start an asynchronous operation to read a certain amount of data at the specifie
typename Allocator,
typename CompletionCondition,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read_at.overload4 async_read_at]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read_at.overload4 async_read_at]``(
AsyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
ReadHandler handler);
@@ -1207,9 +1282,9 @@ Start an asynchronous operation to read a certain amount of data at the specifie
[heading Requirements]
-[*Header: ][^boost/asio/read_at.hpp]
+['Header: ][^boost/asio/read_at.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 async_read_at (1 of 4 overloads)]
@@ -1222,9 +1297,9 @@ Start an asynchronous operation to read a certain amount of data at the specifie
typename ``[link boost_asio.reference.AsyncRandomAccessReadDevice AsyncRandomAccessReadDevice]``,
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_at(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_at(
AsyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -1308,9 +1383,9 @@ Start an asynchronous operation to read a certain amount of data at the specifie
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename CompletionCondition,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_at(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_at(
AsyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
CompletionCondition completion_condition,
ReadHandler handler);
@@ -1394,9 +1469,9 @@ Start an asynchronous operation to read a certain amount of data at the specifie
typename ``[link boost_asio.reference.AsyncRandomAccessReadDevice AsyncRandomAccessReadDevice]``,
typename Allocator,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_at(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_at(
AsyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
ReadHandler handler);
@@ -1467,9 +1542,9 @@ Start an asynchronous operation to read a certain amount of data at the specifie
typename Allocator,
typename CompletionCondition,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_at(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_at(
AsyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
ReadHandler handler);
@@ -1540,7 +1615,7 @@ Start an asynchronous operation to read data into a streambuf until it contains
typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
typename Allocator,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read_until.overload1 async_read_until]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read_until.overload1 async_read_until]``(
AsyncReadStream & s,
boost::asio::basic_streambuf< Allocator > & b,
char delim,
@@ -1551,7 +1626,7 @@ Start an asynchronous operation to read data into a streambuf until it contains
typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
typename Allocator,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read_until.overload2 async_read_until]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read_until.overload2 async_read_until]``(
AsyncReadStream & s,
boost::asio::basic_streambuf< Allocator > & b,
const std::string & delim,
@@ -1562,7 +1637,7 @@ Start an asynchronous operation to read data into a streambuf until it contains
typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
typename Allocator,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read_until.overload3 async_read_until]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read_until.overload3 async_read_until]``(
AsyncReadStream & s,
boost::asio::basic_streambuf< Allocator > & b,
const boost::regex & expr,
@@ -1574,19 +1649,19 @@ Start an asynchronous operation to read data into a streambuf until it contains
typename Allocator,
typename MatchCondition,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.async_read_until.overload4 async_read_until]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_read_until.overload4 async_read_until]``(
AsyncReadStream & s,
boost::asio::basic_streambuf< Allocator > & b,
MatchCondition match_condition,
ReadHandler handler,
- typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
+ typename enable_if< is_match_condition< MatchCondition >::value >::type * = 0);
`` [''''&raquo;''' [link boost_asio.reference.async_read_until.overload4 more...]]``
[heading Requirements]
-[*Header: ][^boost/asio/read_until.hpp]
+['Header: ][^boost/asio/read_until.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 async_read_until (1 of 4 overloads)]
@@ -1599,7 +1674,7 @@ Start an asynchronous operation to read data into a streambuf until it contains
typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
typename Allocator,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_until(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_until(
AsyncReadStream & s,
boost::asio::basic_streambuf< Allocator > & b,
char delim,
@@ -1614,7 +1689,7 @@ This function is used to asynchronously read data into the specified streambuf u
* An error occurred.
-This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a [*composed operation]. If the streambuf's get area already contains the delimiter, this asynchronous operation completes immediately. The program must ensure that the stream performs no other read operations (such as async\_read, async\_read\_until, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
+This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a ['composed operation]. If the streambuf's get area already contains the delimiter, this asynchronous operation completes immediately. The program must ensure that the stream performs no other read operations (such as async\_read, async\_read\_until, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
[heading Parameters]
@@ -1704,7 +1779,7 @@ Start an asynchronous operation to read data into a streambuf until it contains
typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
typename Allocator,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_until(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_until(
AsyncReadStream & s,
boost::asio::basic_streambuf< Allocator > & b,
const std::string & delim,
@@ -1719,7 +1794,7 @@ This function is used to asynchronously read data into the specified streambuf u
* An error occurred.
-This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a [*composed operation]. If the streambuf's get area already contains the delimiter, this asynchronous operation completes immediately. The program must ensure that the stream performs no other read operations (such as async\_read, async\_read\_until, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
+This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a ['composed operation]. If the streambuf's get area already contains the delimiter, this asynchronous operation completes immediately. The program must ensure that the stream performs no other read operations (such as async\_read, async\_read\_until, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
[heading Parameters]
@@ -1809,7 +1884,7 @@ Start an asynchronous operation to read data into a streambuf until some part of
typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
typename Allocator,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_until(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_until(
AsyncReadStream & s,
boost::asio::basic_streambuf< Allocator > & b,
const boost::regex & expr,
@@ -1824,7 +1899,7 @@ This function is used to asynchronously read data into the specified streambuf u
* An error occurred.
-This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a [*composed operation]. If the streambuf's get area already contains data that matches the regular expression, this asynchronous operation completes immediately. The program must ensure that the stream performs no other read operations (such as async\_read, async\_read\_until, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
+This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a ['composed operation]. If the streambuf's get area already contains data that matches the regular expression, this asynchronous operation completes immediately. The program must ensure that the stream performs no other read operations (such as async\_read, async\_read\_until, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
[heading Parameters]
@@ -1916,12 +1991,12 @@ Start an asynchronous operation to read data into a streambuf until a function o
typename Allocator,
typename MatchCondition,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_until(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_until(
AsyncReadStream & s,
boost::asio::basic_streambuf< Allocator > & b,
MatchCondition match_condition,
ReadHandler handler,
- typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
+ typename enable_if< is_match_condition< MatchCondition >::value >::type * = 0);
This function is used to asynchronously read data into the specified streambuf until a user-defined match condition function object, when applied to the data contained in the streambuf, indicates a successful match. The function call always returns immediately. The asynchronous operation will continue until one of the following conditions is true:
@@ -1932,7 +2007,7 @@ This function is used to asynchronously read data into the specified streambuf u
* An error occurred.
-This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a [*composed operation]. If the match condition function object already indicates a match, this asynchronous operation completes immediately. The program must ensure that the stream performs no other read operations (such as async\_read, async\_read\_until, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
+This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function, and is known as a ['composed operation]. If the match condition function object already indicates a match, this asynchronous operation completes immediately. The program must ensure that the stream performs no other read operations (such as async\_read, async\_read\_until, the stream's async\_read\_some function, or any other composed operations that perform reads) until this operation completes.
[heading Parameters]
@@ -2044,6 +2119,109 @@ To asynchronously read data into a streambuf until a matching character is found
[endsect]
+[section:async_result async_result]
+
+
+An interface for customising the behaviour of an initiating function.
+
+
+ template<
+ typename ``[link boost_asio.reference.Handler Handler]``>
+ class async_result
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.async_result.type [*type]]]
+ [The return type of the initiating function. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.async_result.async_result [*async_result]]]
+ [Construct an async result from a given handler. ]
+ ]
+
+ [
+ [[link boost_asio.reference.async_result.get [*get]]]
+ [Obtain the value to be returned from the initiating function. ]
+ ]
+
+]
+
+This template may be specialised for user-defined handler types.
+
+[heading Requirements]
+
+['Header: ][^boost/asio/async_result.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[section:async_result async_result::async_result]
+
+[indexterm2 async_result..async_result]
+Construct an async result from a given handler.
+
+
+ async_result(
+ Handler & );
+
+
+When using a specalised [link boost_asio.reference.async_result `async_result`], the constructor has an opportunity to initialise some state associated with the handler, which is then returned from the initiating function.
+
+
+[endsect]
+
+
+
+[section:get async_result::get]
+
+[indexterm2 get..async_result]
+Obtain the value to be returned from the initiating function.
+
+
+ type get();
+
+
+
+[endsect]
+
+
+
+[section:type async_result::type]
+
+[indexterm2 type..async_result]
+The return type of the initiating function.
+
+
+ typedef void type;
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/async_result.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[endsect]
+
[section:async_write async_write]
[indexterm1 async_write]
@@ -2054,7 +2232,7 @@ Start an asynchronous operation to write a certain amount of data to a stream.
typename ``[link boost_asio.reference.AsyncWriteStream AsyncWriteStream]``,
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.async_write.overload1 async_write]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_write.overload1 async_write]``(
AsyncWriteStream & s,
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -2065,7 +2243,7 @@ Start an asynchronous operation to write a certain amount of data to a stream.
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename CompletionCondition,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.async_write.overload2 async_write]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_write.overload2 async_write]``(
AsyncWriteStream & s,
const ConstBufferSequence & buffers,
CompletionCondition completion_condition,
@@ -2076,7 +2254,7 @@ Start an asynchronous operation to write a certain amount of data to a stream.
typename ``[link boost_asio.reference.AsyncWriteStream AsyncWriteStream]``,
typename Allocator,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.async_write.overload3 async_write]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_write.overload3 async_write]``(
AsyncWriteStream & s,
basic_streambuf< Allocator > & b,
WriteHandler handler);
@@ -2087,7 +2265,7 @@ Start an asynchronous operation to write a certain amount of data to a stream.
typename Allocator,
typename CompletionCondition,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.async_write.overload4 async_write]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_write.overload4 async_write]``(
AsyncWriteStream & s,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
@@ -2096,9 +2274,9 @@ Start an asynchronous operation to write a certain amount of data to a stream.
[heading Requirements]
-[*Header: ][^boost/asio/write.hpp]
+['Header: ][^boost/asio/write.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 async_write (1 of 4 overloads)]
@@ -2111,7 +2289,7 @@ Start an asynchronous operation to write all of the supplied data to a stream.
typename ``[link boost_asio.reference.AsyncWriteStream AsyncWriteStream]``,
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write(
AsyncWriteStream & s,
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -2125,7 +2303,7 @@ This function is used to asynchronously write a certain number of bytes of data
* An error occurred.
-This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function, and is known as a [*composed operation]. The program must ensure that the stream performs no other write operations (such as async\_write, the stream's async\_write\_some function, or any other composed operations that perform writes) until this operation completes.
+This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function, and is known as a ['composed operation]. The program must ensure that the stream performs no other write operations (such as async\_write, the stream's async\_write\_some function, or any other composed operations that perform writes) until this operation completes.
[heading Parameters]
@@ -2180,7 +2358,7 @@ Start an asynchronous operation to write a certain amount of data to a stream.
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename CompletionCondition,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write(
AsyncWriteStream & s,
const ConstBufferSequence & buffers,
CompletionCondition completion_condition,
@@ -2195,7 +2373,7 @@ This function is used to asynchronously write a certain number of bytes of data
* The completion\_condition function object returns 0.
-This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function, and is known as a [*composed operation]. The program must ensure that the stream performs no other write operations (such as async\_write, the stream's async\_write\_some function, or any other composed operations that perform writes) until this operation completes.
+This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function, and is known as a ['composed operation]. The program must ensure that the stream performs no other write operations (such as async\_write, the stream's async\_write\_some function, or any other composed operations that perform writes) until this operation completes.
[heading Parameters]
@@ -2264,7 +2442,7 @@ Start an asynchronous operation to write all of the supplied data to a stream.
typename ``[link boost_asio.reference.AsyncWriteStream AsyncWriteStream]``,
typename Allocator,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write(
AsyncWriteStream & s,
basic_streambuf< Allocator > & b,
WriteHandler handler);
@@ -2278,7 +2456,7 @@ This function is used to asynchronously write a certain number of bytes of data
* An error occurred.
-This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function, and is known as a [*composed operation]. The program must ensure that the stream performs no other write operations (such as async\_write, the stream's async\_write\_some function, or any other composed operations that perform writes) until this operation completes.
+This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function, and is known as a ['composed operation]. The program must ensure that the stream performs no other write operations (such as async\_write, the stream's async\_write\_some function, or any other composed operations that perform writes) until this operation completes.
[heading Parameters]
@@ -2323,7 +2501,7 @@ Start an asynchronous operation to write a certain amount of data to a stream.
typename Allocator,
typename CompletionCondition,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write(
AsyncWriteStream & s,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
@@ -2338,7 +2516,7 @@ This function is used to asynchronously write a certain number of bytes of data
* The completion\_condition function object returns 0.
-This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function, and is known as a [*composed operation]. The program must ensure that the stream performs no other write operations (such as async\_write, the stream's async\_write\_some function, or any other composed operations that perform writes) until this operation completes.
+This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function, and is known as a ['composed operation]. The program must ensure that the stream performs no other write operations (such as async\_write, the stream's async\_write\_some function, or any other composed operations that perform writes) until this operation completes.
[heading Parameters]
@@ -2395,9 +2573,9 @@ Start an asynchronous operation to write a certain amount of data at the specifi
typename ``[link boost_asio.reference.AsyncRandomAccessWriteDevice AsyncRandomAccessWriteDevice]``,
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.async_write_at.overload1 async_write_at]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_write_at.overload1 async_write_at]``(
AsyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
WriteHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.async_write_at.overload1 more...]]``
@@ -2407,9 +2585,9 @@ Start an asynchronous operation to write a certain amount of data at the specifi
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename CompletionCondition,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.async_write_at.overload2 async_write_at]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_write_at.overload2 async_write_at]``(
AsyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
CompletionCondition completion_condition,
WriteHandler handler);
@@ -2419,9 +2597,9 @@ Start an asynchronous operation to write a certain amount of data at the specifi
typename ``[link boost_asio.reference.AsyncRandomAccessWriteDevice AsyncRandomAccessWriteDevice]``,
typename Allocator,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.async_write_at.overload3 async_write_at]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_write_at.overload3 async_write_at]``(
AsyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
WriteHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.async_write_at.overload3 more...]]``
@@ -2431,9 +2609,9 @@ Start an asynchronous operation to write a certain amount of data at the specifi
typename Allocator,
typename CompletionCondition,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.async_write_at.overload4 async_write_at]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.async_write_at.overload4 async_write_at]``(
AsyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
WriteHandler handler);
@@ -2441,9 +2619,9 @@ Start an asynchronous operation to write a certain amount of data at the specifi
[heading Requirements]
-[*Header: ][^boost/asio/write_at.hpp]
+['Header: ][^boost/asio/write_at.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 async_write_at (1 of 4 overloads)]
@@ -2456,9 +2634,9 @@ Start an asynchronous operation to write all of the supplied data at the specifi
typename ``[link boost_asio.reference.AsyncRandomAccessWriteDevice AsyncRandomAccessWriteDevice]``,
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_at(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_at(
AsyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -2471,7 +2649,7 @@ This function is used to asynchronously write a certain number of bytes of data
* An error occurred.
-This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function.
+This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function, and is known as a ['composed operation]. The program must ensure that the device performs no ['overlapping] write operations (such as async\_write\_at, the device's async\_write\_some\_at function, or any other composed operations that perform writes) until this operation completes. Operations are overlapping if the regions defined by their offsets, and the numbers of bytes to write, intersect.
[heading Parameters]
@@ -2528,9 +2706,9 @@ Start an asynchronous operation to write a certain amount of data at the specifi
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename CompletionCondition,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_at(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_at(
AsyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
CompletionCondition completion_condition,
WriteHandler handler);
@@ -2544,7 +2722,7 @@ This function is used to asynchronously write a certain number of bytes of data
* The completion\_condition function object returns 0.
-This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function.
+This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function, and is known as a ['composed operation]. The program must ensure that the device performs no ['overlapping] write operations (such as async\_write\_at, the device's async\_write\_some\_at function, or any other composed operations that perform writes) until this operation completes. Operations are overlapping if the regions defined by their offsets, and the numbers of bytes to write, intersect.
[heading Parameters]
@@ -2615,9 +2793,9 @@ Start an asynchronous operation to write all of the supplied data at the specifi
typename ``[link boost_asio.reference.AsyncRandomAccessWriteDevice AsyncRandomAccessWriteDevice]``,
typename Allocator,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_at(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_at(
AsyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
WriteHandler handler);
@@ -2630,7 +2808,7 @@ This function is used to asynchronously write a certain number of bytes of data
* An error occurred.
-This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function.
+This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function, and is known as a ['composed operation]. The program must ensure that the device performs no ['overlapping] write operations (such as async\_write\_at, the device's async\_write\_some\_at function, or any other composed operations that perform writes) until this operation completes. Operations are overlapping if the regions defined by their offsets, and the numbers of bytes to write, intersect.
[heading Parameters]
@@ -2677,9 +2855,9 @@ Start an asynchronous operation to write a certain amount of data at the specifi
typename Allocator,
typename CompletionCondition,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_at(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_at(
AsyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
WriteHandler handler);
@@ -2693,7 +2871,7 @@ This function is used to asynchronously write a certain number of bytes of data
* The completion\_condition function object returns 0.
-This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function.
+This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function, and is known as a ['composed operation]. The program must ensure that the device performs no ['overlapping] write operations (such as async\_write\_at, the device's async\_write\_some\_at function, or any other composed operations that perform writes) until this operation completes. Operations are overlapping if the regions defined by their offsets, and the numbers of bytes to write, intersect.
[heading Parameters]
@@ -2969,7 +3147,9 @@ Provides datagram-oriented socket functionality.
Construct a basic_datagram_socket on an existing native socket.
- Move-construct a basic_datagram_socket from another. ]
+ Move-construct a basic_datagram_socket from another.
+
+ Move-construct a basic_datagram_socket from a socket of another protocol type. ]
]
[
@@ -3055,7 +3235,9 @@ Provides datagram-oriented socket functionality.
[
[[link boost_asio.reference.basic_datagram_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_datagram_socket from another. ]
+ [Move-assign a basic_datagram_socket from another.
+
+ Move-assign a basic_datagram_socket from a socket of another protocol type. ]
]
[
@@ -3163,17 +3345,17 @@ The [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign basic_datagram_socket::assign]
@@ -3245,7 +3427,7 @@ Start an asynchronous connect.
template<
typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
const endpoint_type & peer_endpoint,
ConnectHandler handler);
@@ -3310,7 +3492,7 @@ Start an asynchronous receive on a connected socket.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_datagram_socket.async_receive.overload1 async_receive]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_datagram_socket.async_receive.overload1 async_receive]``(
const MutableBufferSequence & buffers,
ReadHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.async_receive.overload1 more...]]``
@@ -3318,7 +3500,7 @@ Start an asynchronous receive on a connected socket.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_datagram_socket.async_receive.overload2 async_receive]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_datagram_socket.async_receive.overload2 async_receive]``(
const MutableBufferSequence & buffers,
socket_base::message_flags flags,
ReadHandler handler);
@@ -3334,7 +3516,7 @@ Start an asynchronous receive on a connected socket.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -3391,7 +3573,7 @@ Start an asynchronous receive on a connected socket.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
const MutableBufferSequence & buffers,
socket_base::message_flags flags,
ReadHandler handler);
@@ -3442,7 +3624,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_datagram_socket.async_receive_from.overload1 async_receive_from]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_datagram_socket.async_receive_from.overload1 async_receive_from]``(
const MutableBufferSequence & buffers,
endpoint_type & sender_endpoint,
ReadHandler handler);
@@ -3451,7 +3633,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_datagram_socket.async_receive_from.overload2 async_receive_from]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_datagram_socket.async_receive_from.overload2 async_receive_from]``(
const MutableBufferSequence & buffers,
endpoint_type & sender_endpoint,
socket_base::message_flags flags,
@@ -3468,7 +3650,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive_from(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive_from(
const MutableBufferSequence & buffers,
endpoint_type & sender_endpoint,
ReadHandler handler);
@@ -3503,7 +3685,7 @@ Regardless of whether the asynchronous operation completes immediately or not, t
To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
socket.async_receive_from(
- boost::asio::buffer(data, size), 0, sender_endpoint, handler);
+ boost::asio::buffer(data, size), sender_endpoint, handler);
See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
@@ -3524,7 +3706,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive_from(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive_from(
const MutableBufferSequence & buffers,
endpoint_type & sender_endpoint,
socket_base::message_flags flags,
@@ -3573,7 +3755,7 @@ Start an asynchronous send on a connected socket.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.basic_datagram_socket.async_send.overload1 async_send]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_datagram_socket.async_send.overload1 async_send]``(
const ConstBufferSequence & buffers,
WriteHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.async_send.overload1 more...]]``
@@ -3581,7 +3763,7 @@ Start an asynchronous send on a connected socket.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.basic_datagram_socket.async_send.overload2 async_send]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_datagram_socket.async_send.overload2 async_send]``(
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
WriteHandler handler);
@@ -3597,12 +3779,12 @@ Start an asynchronous send on a connected socket.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send(
const ConstBufferSequence & buffers,
WriteHandler handler);
-This function is used to send data on the datagram socket. The function call will block until the data has been sent successfully or an error occurs.
+This function is used to asynchronously send data on the datagram socket. The function call always returns immediately.
[heading Parameters]
@@ -3654,13 +3836,13 @@ Start an asynchronous send on a connected socket.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send(
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
WriteHandler handler);
-This function is used to send data on the datagram socket. The function call will block until the data has been sent successfully or an error occurs.
+This function is used to asynchronously send data on the datagram socket. The function call always returns immediately.
[heading Parameters]
@@ -3705,7 +3887,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.basic_datagram_socket.async_send_to.overload1 async_send_to]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_datagram_socket.async_send_to.overload1 async_send_to]``(
const ConstBufferSequence & buffers,
const endpoint_type & destination,
WriteHandler handler);
@@ -3714,7 +3896,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.basic_datagram_socket.async_send_to.overload2 async_send_to]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_datagram_socket.async_send_to.overload2 async_send_to]``(
const ConstBufferSequence & buffers,
const endpoint_type & destination,
socket_base::message_flags flags,
@@ -3731,7 +3913,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send_to(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send_to(
const ConstBufferSequence & buffers,
const endpoint_type & destination,
WriteHandler handler);
@@ -3789,7 +3971,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send_to(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send_to(
const ConstBufferSequence & buffers,
const endpoint_type & destination,
socket_base::message_flags flags,
@@ -4052,7 +4234,19 @@ Move-construct a [link boost_asio.reference.basic_datagram_socket `basic_datagra
`` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.basic_datagram_socket.overload5 more...]]``
-[section:overload1 basic_datagram_socket::basic_datagram_socket (1 of 5 overloads)]
+Move-construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.DatagramSocketService DatagramSocketService1]``>
+ ``[link boost_asio.reference.basic_datagram_socket.basic_datagram_socket.overload6 basic_datagram_socket]``(
+ basic_datagram_socket< Protocol1, DatagramSocketService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.basic_datagram_socket.overload6 more...]]``
+
+
+[section:overload1 basic_datagram_socket::basic_datagram_socket (1 of 6 overloads)]
Construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] without opening it.
@@ -4081,7 +4275,7 @@ This constructor creates a datagram socket without opening it. The `open()` func
-[section:overload2 basic_datagram_socket::basic_datagram_socket (2 of 5 overloads)]
+[section:overload2 basic_datagram_socket::basic_datagram_socket (2 of 6 overloads)]
Construct and open a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`].
@@ -4123,7 +4317,7 @@ This constructor creates and opens a datagram socket.
-[section:overload3 basic_datagram_socket::basic_datagram_socket (3 of 5 overloads)]
+[section:overload3 basic_datagram_socket::basic_datagram_socket (3 of 6 overloads)]
Construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`], opening it and binding it to the given local endpoint.
@@ -4165,7 +4359,7 @@ This constructor creates a datagram socket and automatically opens it bound to t
-[section:overload4 basic_datagram_socket::basic_datagram_socket (4 of 5 overloads)]
+[section:overload4 basic_datagram_socket::basic_datagram_socket (4 of 6 overloads)]
Construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] on an existing native socket.
@@ -4210,7 +4404,7 @@ This constructor creates a datagram socket object to hold an existing native soc
-[section:overload5 basic_datagram_socket::basic_datagram_socket (5 of 5 overloads)]
+[section:overload5 basic_datagram_socket::basic_datagram_socket (5 of 6 overloads)]
Move-construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] from another.
@@ -4243,6 +4437,44 @@ Following the move, the moved-from object is in the same state as if constructed
[endsect]
+
+[section:overload6 basic_datagram_socket::basic_datagram_socket (6 of 6 overloads)]
+
+
+Move-construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.DatagramSocketService DatagramSocketService1]``>
+ basic_datagram_socket(
+ basic_datagram_socket< Protocol1, DatagramSocketService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+
+
+This constructor moves a datagram socket from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_datagram_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
[endsect]
[section:bind basic_datagram_socket::bind]
@@ -4416,9 +4648,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -4459,9 +4691,9 @@ Implements the FIONREAD IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -4863,9 +5095,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -4917,9 +5149,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -4971,9 +5203,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -4992,9 +5224,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -5137,7 +5369,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
...
boost::asio::ip::tcp::socket::keep_alive option;
socket.get_option(option);
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -5194,7 +5426,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
{
// An error occurred.
}
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -5288,9 +5520,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -5492,9 +5724,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -5547,9 +5779,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -5949,7 +6181,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
Construct a basic_socket on an existing native socket.
- Move-construct a basic_socket from another. ]
+ Move-construct a basic_socket from another.
+
+ Move-construct a basic_socket from a socket of another protocol type. ]
]
[
@@ -6035,7 +6269,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
[
[[link boost_asio.reference.basic_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket from another. ]
+ [Move-assign a basic_socket from another.
+
+ Move-assign a basic_socket from a socket of another protocol type. ]
]
[
@@ -6128,18 +6364,18 @@ The [link boost_asio.reference.basic_socket `basic_socket`] class template provi
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -6212,9 +6448,9 @@ Bitmask type for flags that can be passed to send and receive operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -6305,9 +6541,9 @@ The native representation of a socket.
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -6677,9 +6913,9 @@ This function is intended to allow the encapsulation of arbitrary non-blocking s
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -6855,9 +7091,9 @@ Implements the FIONBIO IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -6984,13 +7220,34 @@ This function opens the socket so that it will use the specified protocol.
[endsect]
-
[section:operator_eq_ basic_datagram_socket::operator=]
[indexterm2 operator=..basic_datagram_socket]
Move-assign a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] from another.
+ basic_datagram_socket & ``[link boost_asio.reference.basic_datagram_socket.operator_eq_.overload1 operator=]``(
+ basic_datagram_socket && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.operator_eq_.overload1 more...]]``
+
+
+Move-assign a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.DatagramSocketService DatagramSocketService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_datagram_socket >::type & ``[link boost_asio.reference.basic_datagram_socket.operator_eq_.overload2 operator=]``(
+ basic_datagram_socket< Protocol1, DatagramSocketService1 > && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.operator_eq_.overload2 more...]]``
+
+
+[section:overload1 basic_datagram_socket::operator= (1 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] from another.
+
+
basic_datagram_socket & operator=(
basic_datagram_socket && other);
@@ -7019,6 +7276,45 @@ Following the move, the moved-from object is in the same state as if constructed
+[section:overload2 basic_datagram_socket::operator= (2 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.DatagramSocketService DatagramSocketService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_datagram_socket >::type & operator=(
+ basic_datagram_socket< Protocol1, DatagramSocketService1 > && other);
+
+
+This assignment operator moves a datagram socket from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_datagram_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
[section:protocol_type basic_datagram_socket::protocol_type]
[indexterm2 protocol_type..basic_datagram_socket]
@@ -7031,9 +7327,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -7276,9 +7572,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -7520,9 +7816,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -7691,9 +7987,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -7936,9 +8232,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -7990,9 +8286,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -8228,9 +8524,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_datagram_socket.hpp]
+['Header: ][^boost/asio/basic_datagram_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -8684,9 +8980,9 @@ Most applications will use the [link boost_asio.reference.deadline_timer `deadli
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Examples]
@@ -8771,9 +9067,9 @@ Changing the expiry time of a timer while there are pending asynchronous waits c
[heading Requirements]
-[*Header: ][^boost/asio/basic_deadline_timer.hpp]
+['Header: ][^boost/asio/basic_deadline_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:async_wait basic_deadline_timer::async_wait]
@@ -8784,7 +9080,7 @@ Start an asynchronous wait on the timer.
template<
typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
- void async_wait(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_wait(
WaitHandler handler);
@@ -9172,9 +9468,9 @@ The duration type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_deadline_timer.hpp]
+['Header: ][^boost/asio/basic_deadline_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -9621,9 +9917,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_deadline_timer.hpp]
+['Header: ][^boost/asio/basic_deadline_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -9669,9 +9965,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_deadline_timer.hpp]
+['Header: ][^boost/asio/basic_deadline_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -9690,9 +9986,9 @@ The time type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_deadline_timer.hpp]
+['Header: ][^boost/asio/basic_deadline_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -9711,9 +10007,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_deadline_timer.hpp]
+['Header: ][^boost/asio/basic_deadline_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -9894,9 +10190,9 @@ All I/O objects are non-copyable. However, when using C++0x, certain I/O objects
[heading Requirements]
-[*Header: ][^boost/asio/basic_io_object.hpp]
+['Header: ][^boost/asio/basic_io_object.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:basic_io_object basic_io_object::basic_io_object]
@@ -10104,9 +10400,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_io_object.hpp]
+['Header: ][^boost/asio/basic_io_object.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -10176,9 +10472,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_io_object.hpp]
+['Header: ][^boost/asio/basic_io_object.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -10435,7 +10731,9 @@ Provides raw-oriented socket functionality.
Construct a basic_raw_socket on an existing native socket.
- Move-construct a basic_raw_socket from another. ]
+ Move-construct a basic_raw_socket from another.
+
+ Move-construct a basic_raw_socket from a socket of another protocol type. ]
]
[
@@ -10521,7 +10819,9 @@ Provides raw-oriented socket functionality.
[
[[link boost_asio.reference.basic_raw_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_raw_socket from another. ]
+ [Move-assign a basic_raw_socket from another.
+
+ Move-assign a basic_raw_socket from a socket of another protocol type. ]
]
[
@@ -10629,17 +10929,17 @@ The [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] class templa
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign basic_raw_socket::assign]
@@ -10711,7 +11011,7 @@ Start an asynchronous connect.
template<
typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
const endpoint_type & peer_endpoint,
ConnectHandler handler);
@@ -10776,7 +11076,7 @@ Start an asynchronous receive on a connected socket.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_raw_socket.async_receive.overload1 async_receive]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_raw_socket.async_receive.overload1 async_receive]``(
const MutableBufferSequence & buffers,
ReadHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.async_receive.overload1 more...]]``
@@ -10784,7 +11084,7 @@ Start an asynchronous receive on a connected socket.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_raw_socket.async_receive.overload2 async_receive]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_raw_socket.async_receive.overload2 async_receive]``(
const MutableBufferSequence & buffers,
socket_base::message_flags flags,
ReadHandler handler);
@@ -10800,7 +11100,7 @@ Start an asynchronous receive on a connected socket.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -10857,7 +11157,7 @@ Start an asynchronous receive on a connected socket.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
const MutableBufferSequence & buffers,
socket_base::message_flags flags,
ReadHandler handler);
@@ -10908,7 +11208,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_raw_socket.async_receive_from.overload1 async_receive_from]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_raw_socket.async_receive_from.overload1 async_receive_from]``(
const MutableBufferSequence & buffers,
endpoint_type & sender_endpoint,
ReadHandler handler);
@@ -10917,7 +11217,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_raw_socket.async_receive_from.overload2 async_receive_from]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_raw_socket.async_receive_from.overload2 async_receive_from]``(
const MutableBufferSequence & buffers,
endpoint_type & sender_endpoint,
socket_base::message_flags flags,
@@ -10934,7 +11234,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive_from(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive_from(
const MutableBufferSequence & buffers,
endpoint_type & sender_endpoint,
ReadHandler handler);
@@ -10990,7 +11290,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive_from(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive_from(
const MutableBufferSequence & buffers,
endpoint_type & sender_endpoint,
socket_base::message_flags flags,
@@ -11039,7 +11339,7 @@ Start an asynchronous send on a connected socket.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.basic_raw_socket.async_send.overload1 async_send]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_raw_socket.async_send.overload1 async_send]``(
const ConstBufferSequence & buffers,
WriteHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.async_send.overload1 more...]]``
@@ -11047,7 +11347,7 @@ Start an asynchronous send on a connected socket.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.basic_raw_socket.async_send.overload2 async_send]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_raw_socket.async_send.overload2 async_send]``(
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
WriteHandler handler);
@@ -11063,7 +11363,7 @@ Start an asynchronous send on a connected socket.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send(
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -11120,7 +11420,7 @@ Start an asynchronous send on a connected socket.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send(
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
WriteHandler handler);
@@ -11171,7 +11471,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.basic_raw_socket.async_send_to.overload1 async_send_to]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_raw_socket.async_send_to.overload1 async_send_to]``(
const ConstBufferSequence & buffers,
const endpoint_type & destination,
WriteHandler handler);
@@ -11180,7 +11480,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.basic_raw_socket.async_send_to.overload2 async_send_to]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_raw_socket.async_send_to.overload2 async_send_to]``(
const ConstBufferSequence & buffers,
const endpoint_type & destination,
socket_base::message_flags flags,
@@ -11197,7 +11497,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send_to(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send_to(
const ConstBufferSequence & buffers,
const endpoint_type & destination,
WriteHandler handler);
@@ -11255,7 +11555,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send_to(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send_to(
const ConstBufferSequence & buffers,
const endpoint_type & destination,
socket_base::message_flags flags,
@@ -11518,7 +11818,19 @@ Move-construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`]
`` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.basic_raw_socket.overload5 more...]]``
-[section:overload1 basic_raw_socket::basic_raw_socket (1 of 5 overloads)]
+Move-construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.RawSocketService RawSocketService1]``>
+ ``[link boost_asio.reference.basic_raw_socket.basic_raw_socket.overload6 basic_raw_socket]``(
+ basic_raw_socket< Protocol1, RawSocketService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.basic_raw_socket.overload6 more...]]``
+
+
+[section:overload1 basic_raw_socket::basic_raw_socket (1 of 6 overloads)]
Construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] without opening it.
@@ -11547,7 +11859,7 @@ This constructor creates a raw socket without opening it. The `open()` function
-[section:overload2 basic_raw_socket::basic_raw_socket (2 of 5 overloads)]
+[section:overload2 basic_raw_socket::basic_raw_socket (2 of 6 overloads)]
Construct and open a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`].
@@ -11589,7 +11901,7 @@ This constructor creates and opens a raw socket.
-[section:overload3 basic_raw_socket::basic_raw_socket (3 of 5 overloads)]
+[section:overload3 basic_raw_socket::basic_raw_socket (3 of 6 overloads)]
Construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`], opening it and binding it to the given local endpoint.
@@ -11631,7 +11943,7 @@ This constructor creates a raw socket and automatically opens it bound to the sp
-[section:overload4 basic_raw_socket::basic_raw_socket (4 of 5 overloads)]
+[section:overload4 basic_raw_socket::basic_raw_socket (4 of 6 overloads)]
Construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] on an existing native socket.
@@ -11676,7 +11988,7 @@ This constructor creates a raw socket object to hold an existing native socket.
-[section:overload5 basic_raw_socket::basic_raw_socket (5 of 5 overloads)]
+[section:overload5 basic_raw_socket::basic_raw_socket (5 of 6 overloads)]
Move-construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] from another.
@@ -11709,6 +12021,44 @@ Following the move, the moved-from object is in the same state as if constructed
[endsect]
+
+[section:overload6 basic_raw_socket::basic_raw_socket (6 of 6 overloads)]
+
+
+Move-construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.RawSocketService RawSocketService1]``>
+ basic_raw_socket(
+ basic_raw_socket< Protocol1, RawSocketService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+
+
+This constructor moves a raw socket from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_raw_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
[endsect]
[section:bind basic_raw_socket::bind]
@@ -11882,9 +12232,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -11925,9 +12275,9 @@ Implements the FIONREAD IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -12329,9 +12679,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -12383,9 +12733,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -12437,9 +12787,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -12458,9 +12808,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -12603,7 +12953,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
...
boost::asio::ip::tcp::socket::keep_alive option;
socket.get_option(option);
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -12660,7 +13010,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
{
// An error occurred.
}
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -12754,9 +13104,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -12958,9 +13308,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -13013,9 +13363,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -13415,7 +13765,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
Construct a basic_socket on an existing native socket.
- Move-construct a basic_socket from another. ]
+ Move-construct a basic_socket from another.
+
+ Move-construct a basic_socket from a socket of another protocol type. ]
]
[
@@ -13501,7 +13853,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
[
[[link boost_asio.reference.basic_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket from another. ]
+ [Move-assign a basic_socket from another.
+
+ Move-assign a basic_socket from a socket of another protocol type. ]
]
[
@@ -13594,18 +13948,18 @@ The [link boost_asio.reference.basic_socket `basic_socket`] class template provi
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -13678,9 +14032,9 @@ Bitmask type for flags that can be passed to send and receive operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -13771,9 +14125,9 @@ The native representation of a socket.
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -14143,9 +14497,9 @@ This function is intended to allow the encapsulation of arbitrary non-blocking s
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -14321,9 +14675,9 @@ Implements the FIONBIO IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -14450,13 +14804,34 @@ This function opens the socket so that it will use the specified protocol.
[endsect]
-
[section:operator_eq_ basic_raw_socket::operator=]
[indexterm2 operator=..basic_raw_socket]
Move-assign a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] from another.
+ basic_raw_socket & ``[link boost_asio.reference.basic_raw_socket.operator_eq_.overload1 operator=]``(
+ basic_raw_socket && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.operator_eq_.overload1 more...]]``
+
+
+Move-assign a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.RawSocketService RawSocketService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_raw_socket >::type & ``[link boost_asio.reference.basic_raw_socket.operator_eq_.overload2 operator=]``(
+ basic_raw_socket< Protocol1, RawSocketService1 > && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.operator_eq_.overload2 more...]]``
+
+
+[section:overload1 basic_raw_socket::operator= (1 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] from another.
+
+
basic_raw_socket & operator=(
basic_raw_socket && other);
@@ -14485,6 +14860,45 @@ Following the move, the moved-from object is in the same state as if constructed
+[section:overload2 basic_raw_socket::operator= (2 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.RawSocketService RawSocketService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_raw_socket >::type & operator=(
+ basic_raw_socket< Protocol1, RawSocketService1 > && other);
+
+
+This assignment operator moves a raw socket from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_raw_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
[section:protocol_type basic_raw_socket::protocol_type]
[indexterm2 protocol_type..basic_raw_socket]
@@ -14497,9 +14911,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -14742,9 +15156,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -14986,9 +15400,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -15157,9 +15571,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -15402,9 +15816,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -15456,9 +15870,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -15694,9 +16108,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_raw_socket.hpp]
+['Header: ][^boost/asio/basic_raw_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -16217,7 +16631,9 @@ Provides sequenced packet socket functionality.
Construct a basic_seq_packet_socket on an existing native socket.
- Move-construct a basic_seq_packet_socket from another. ]
+ Move-construct a basic_seq_packet_socket from another.
+
+ Move-construct a basic_seq_packet_socket from a socket of another protocol type. ]
]
[
@@ -16303,7 +16719,9 @@ Provides sequenced packet socket functionality.
[
[[link boost_asio.reference.basic_seq_packet_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_seq_packet_socket from another. ]
+ [Move-assign a basic_seq_packet_socket from another.
+
+ Move-assign a basic_seq_packet_socket from a socket of another protocol type. ]
]
[
@@ -16403,17 +16821,17 @@ The [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign basic_seq_packet_socket::assign]
@@ -16485,7 +16903,7 @@ Start an asynchronous connect.
template<
typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
const endpoint_type & peer_endpoint,
ConnectHandler handler);
@@ -16550,7 +16968,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_seq_packet_socket.async_receive.overload1 async_receive]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_seq_packet_socket.async_receive.overload1 async_receive]``(
const MutableBufferSequence & buffers,
socket_base::message_flags & out_flags,
ReadHandler handler);
@@ -16559,7 +16977,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_seq_packet_socket.async_receive.overload2 async_receive]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_seq_packet_socket.async_receive.overload2 async_receive]``(
const MutableBufferSequence & buffers,
socket_base::message_flags in_flags,
socket_base::message_flags & out_flags,
@@ -16576,7 +16994,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
const MutableBufferSequence & buffers,
socket_base::message_flags & out_flags,
ReadHandler handler);
@@ -16631,7 +17049,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
const MutableBufferSequence & buffers,
socket_base::message_flags in_flags,
socket_base::message_flags & out_flags,
@@ -16693,7 +17111,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send(
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
WriteHandler handler);
@@ -16961,7 +17379,19 @@ Move-construct a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_p
`` [''''&raquo;''' [link boost_asio.reference.basic_seq_packet_socket.basic_seq_packet_socket.overload5 more...]]``
-[section:overload1 basic_seq_packet_socket::basic_seq_packet_socket (1 of 5 overloads)]
+Move-construct a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SeqPacketSocketService SeqPacketSocketService1]``>
+ ``[link boost_asio.reference.basic_seq_packet_socket.basic_seq_packet_socket.overload6 basic_seq_packet_socket]``(
+ basic_seq_packet_socket< Protocol1, SeqPacketSocketService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_seq_packet_socket.basic_seq_packet_socket.overload6 more...]]``
+
+
+[section:overload1 basic_seq_packet_socket::basic_seq_packet_socket (1 of 6 overloads)]
Construct a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] without opening it.
@@ -16990,7 +17420,7 @@ This constructor creates a sequenced packet socket without opening it. The socke
-[section:overload2 basic_seq_packet_socket::basic_seq_packet_socket (2 of 5 overloads)]
+[section:overload2 basic_seq_packet_socket::basic_seq_packet_socket (2 of 6 overloads)]
Construct and open a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`].
@@ -17032,7 +17462,7 @@ This constructor creates and opens a sequenced\_packet socket. The socket needs
-[section:overload3 basic_seq_packet_socket::basic_seq_packet_socket (3 of 5 overloads)]
+[section:overload3 basic_seq_packet_socket::basic_seq_packet_socket (3 of 6 overloads)]
Construct a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`], opening it and binding it to the given local endpoint.
@@ -17074,7 +17504,7 @@ This constructor creates a sequenced packet socket and automatically opens it bo
-[section:overload4 basic_seq_packet_socket::basic_seq_packet_socket (4 of 5 overloads)]
+[section:overload4 basic_seq_packet_socket::basic_seq_packet_socket (4 of 6 overloads)]
Construct a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] on an existing native socket.
@@ -17119,7 +17549,7 @@ This constructor creates a sequenced packet socket object to hold an existing na
-[section:overload5 basic_seq_packet_socket::basic_seq_packet_socket (5 of 5 overloads)]
+[section:overload5 basic_seq_packet_socket::basic_seq_packet_socket (5 of 6 overloads)]
Move-construct a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] from another.
@@ -17152,6 +17582,44 @@ Following the move, the moved-from object is in the same state as if constructed
[endsect]
+
+[section:overload6 basic_seq_packet_socket::basic_seq_packet_socket (6 of 6 overloads)]
+
+
+Move-construct a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SeqPacketSocketService SeqPacketSocketService1]``>
+ basic_seq_packet_socket(
+ basic_seq_packet_socket< Protocol1, SeqPacketSocketService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+
+
+This constructor moves a sequenced packet socket from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_seq_packet_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
[endsect]
[section:bind basic_seq_packet_socket::bind]
@@ -17325,9 +17793,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -17368,9 +17836,9 @@ Implements the FIONREAD IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -17772,9 +18240,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -17826,9 +18294,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -17880,9 +18348,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -17901,9 +18369,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -18046,7 +18514,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
...
boost::asio::ip::tcp::socket::keep_alive option;
socket.get_option(option);
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -18103,7 +18571,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
{
// An error occurred.
}
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -18197,9 +18665,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -18401,9 +18869,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -18456,9 +18924,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -18858,7 +19326,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
Construct a basic_socket on an existing native socket.
- Move-construct a basic_socket from another. ]
+ Move-construct a basic_socket from another.
+
+ Move-construct a basic_socket from a socket of another protocol type. ]
]
[
@@ -18944,7 +19414,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
[
[[link boost_asio.reference.basic_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket from another. ]
+ [Move-assign a basic_socket from another.
+
+ Move-assign a basic_socket from a socket of another protocol type. ]
]
[
@@ -19037,18 +19509,18 @@ The [link boost_asio.reference.basic_socket `basic_socket`] class template provi
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -19121,9 +19593,9 @@ Bitmask type for flags that can be passed to send and receive operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -19214,9 +19686,9 @@ The native representation of a socket.
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -19586,9 +20058,9 @@ This function is intended to allow the encapsulation of arbitrary non-blocking s
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -19764,9 +20236,9 @@ Implements the FIONBIO IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -19893,13 +20365,34 @@ This function opens the socket so that it will use the specified protocol.
[endsect]
-
[section:operator_eq_ basic_seq_packet_socket::operator=]
[indexterm2 operator=..basic_seq_packet_socket]
Move-assign a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] from another.
+ basic_seq_packet_socket & ``[link boost_asio.reference.basic_seq_packet_socket.operator_eq_.overload1 operator=]``(
+ basic_seq_packet_socket && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_seq_packet_socket.operator_eq_.overload1 more...]]``
+
+
+Move-assign a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SeqPacketSocketService SeqPacketSocketService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_seq_packet_socket >::type & ``[link boost_asio.reference.basic_seq_packet_socket.operator_eq_.overload2 operator=]``(
+ basic_seq_packet_socket< Protocol1, SeqPacketSocketService1 > && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_seq_packet_socket.operator_eq_.overload2 more...]]``
+
+
+[section:overload1 basic_seq_packet_socket::operator= (1 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] from another.
+
+
basic_seq_packet_socket & operator=(
basic_seq_packet_socket && other);
@@ -19928,6 +20421,45 @@ Following the move, the moved-from object is in the same state as if constructed
+[section:overload2 basic_seq_packet_socket::operator= (2 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SeqPacketSocketService SeqPacketSocketService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_seq_packet_socket >::type & operator=(
+ basic_seq_packet_socket< Protocol1, SeqPacketSocketService1 > && other);
+
+
+This assignment operator moves a sequenced packet socket from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_seq_packet_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
[section:protocol_type basic_seq_packet_socket::protocol_type]
[indexterm2 protocol_type..basic_seq_packet_socket]
@@ -19940,9 +20472,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -20206,9 +20738,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -20260,9 +20792,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -20431,9 +20963,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -20614,9 +21146,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -20668,9 +21200,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -20716,9 +21248,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_seq_packet_socket.hpp]
+['Header: ][^boost/asio/basic_seq_packet_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -21217,17 +21749,17 @@ The [link boost_asio.reference.basic_serial_port `basic_serial_port`] class temp
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_serial_port.hpp]
+['Header: ][^boost/asio/basic_serial_port.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign basic_serial_port::assign]
@@ -21287,7 +21819,7 @@ Start an asynchronous read.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some(
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -21344,7 +21876,7 @@ Start an asynchronous write.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some(
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -22000,9 +22532,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_serial_port.hpp]
+['Header: ][^boost/asio/basic_serial_port.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -22278,18 +22810,18 @@ The [link boost_asio.reference.basic_serial_port `basic_serial_port`] class temp
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_serial_port.hpp]
+['Header: ][^boost/asio/basic_serial_port.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -22340,9 +22872,9 @@ The native representation of a serial port.
[heading Requirements]
-[*Header: ][^boost/asio/basic_serial_port.hpp]
+['Header: ][^boost/asio/basic_serial_port.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -22361,9 +22893,9 @@ The native representation of a serial port.
[heading Requirements]
-[*Header: ][^boost/asio/basic_serial_port.hpp]
+['Header: ][^boost/asio/basic_serial_port.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -22729,9 +23261,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_serial_port.hpp]
+['Header: ][^boost/asio/basic_serial_port.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -23082,9 +23614,9 @@ Most applications will use the [link boost_asio.reference.signal_set `signal_set
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Example]
@@ -23139,9 +23671,9 @@ POSIX allows signals to be blocked using functions such as `sigprocmask()` and `
[heading Requirements]
-[*Header: ][^boost/asio/basic_signal_set.hpp]
+['Header: ][^boost/asio/basic_signal_set.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:add basic_signal_set::add]
@@ -23240,7 +23772,7 @@ Start an asynchronous operation to wait for a signal to be delivered.
template<
typename ``[link boost_asio.reference.SignalHandler SignalHandler]``>
- void async_wait(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_wait(
SignalHandler handler);
@@ -23824,9 +24356,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_signal_set.hpp]
+['Header: ][^boost/asio/basic_signal_set.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -23970,9 +24502,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_signal_set.hpp]
+['Header: ][^boost/asio/basic_signal_set.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -24189,7 +24721,9 @@ Provides socket functionality.
Construct a basic_socket on an existing native socket.
- Move-construct a basic_socket from another. ]
+ Move-construct a basic_socket from another.
+
+ Move-construct a basic_socket from a socket of another protocol type. ]
]
[
@@ -24275,7 +24809,9 @@ Provides socket functionality.
[
[[link boost_asio.reference.basic_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket from another. ]
+ [Move-assign a basic_socket from another.
+
+ Move-assign a basic_socket from a socket of another protocol type. ]
]
[
@@ -24368,17 +24904,17 @@ The [link boost_asio.reference.basic_socket `basic_socket`] class template provi
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign basic_socket::assign]
@@ -24441,7 +24977,7 @@ Start an asynchronous connect.
template<
typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
const endpoint_type & peer_endpoint,
ConnectHandler handler);
@@ -24708,7 +25244,19 @@ Move-construct a [link boost_asio.reference.basic_socket `basic_socket`] from an
`` [''''&raquo;''' [link boost_asio.reference.basic_socket.basic_socket.overload5 more...]]``
-[section:overload1 basic_socket::basic_socket (1 of 5 overloads)]
+Move-construct a [link boost_asio.reference.basic_socket `basic_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SocketService SocketService1]``>
+ ``[link boost_asio.reference.basic_socket.basic_socket.overload6 basic_socket]``(
+ basic_socket< Protocol1, SocketService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_socket.basic_socket.overload6 more...]]``
+
+
+[section:overload1 basic_socket::basic_socket (1 of 6 overloads)]
Construct a [link boost_asio.reference.basic_socket `basic_socket`] without opening it.
@@ -24737,7 +25285,7 @@ This constructor creates a socket without opening it.
-[section:overload2 basic_socket::basic_socket (2 of 5 overloads)]
+[section:overload2 basic_socket::basic_socket (2 of 6 overloads)]
Construct and open a [link boost_asio.reference.basic_socket `basic_socket`].
@@ -24779,7 +25327,7 @@ This constructor creates and opens a socket.
-[section:overload3 basic_socket::basic_socket (3 of 5 overloads)]
+[section:overload3 basic_socket::basic_socket (3 of 6 overloads)]
Construct a [link boost_asio.reference.basic_socket `basic_socket`], opening it and binding it to the given local endpoint.
@@ -24821,7 +25369,7 @@ This constructor creates a socket and automatically opens it bound to the specif
-[section:overload4 basic_socket::basic_socket (4 of 5 overloads)]
+[section:overload4 basic_socket::basic_socket (4 of 6 overloads)]
Construct a [link boost_asio.reference.basic_socket `basic_socket`] on an existing native socket.
@@ -24866,7 +25414,7 @@ This constructor creates a socket object to hold an existing native socket.
-[section:overload5 basic_socket::basic_socket (5 of 5 overloads)]
+[section:overload5 basic_socket::basic_socket (5 of 6 overloads)]
Move-construct a [link boost_asio.reference.basic_socket `basic_socket`] from another.
@@ -24899,6 +25447,44 @@ Following the move, the moved-from object is in the same state as if constructed
[endsect]
+
+[section:overload6 basic_socket::basic_socket (6 of 6 overloads)]
+
+
+Move-construct a [link boost_asio.reference.basic_socket `basic_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SocketService SocketService1]``>
+ basic_socket(
+ basic_socket< Protocol1, SocketService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+
+
+This constructor moves a socket from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_socket `basic_socket`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
[endsect]
[section:bind basic_socket::bind]
@@ -25066,9 +25652,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -25109,9 +25695,9 @@ Implements the FIONREAD IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -25495,9 +26081,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -25549,9 +26135,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -25603,9 +26189,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -25624,9 +26210,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -25770,7 +26356,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
...
boost::asio::ip::tcp::socket::keep_alive option;
socket.get_option(option);
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -25824,7 +26410,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
{
// An error occurred.
}
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -25918,9 +26504,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -26117,9 +26703,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -26172,9 +26758,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -26559,7 +27145,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
Construct a basic_socket on an existing native socket.
- Move-construct a basic_socket from another. ]
+ Move-construct a basic_socket from another.
+
+ Move-construct a basic_socket from a socket of another protocol type. ]
]
[
@@ -26645,7 +27233,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
[
[[link boost_asio.reference.basic_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket from another. ]
+ [Move-assign a basic_socket from another.
+
+ Move-assign a basic_socket from a socket of another protocol type. ]
]
[
@@ -26738,18 +27328,18 @@ The [link boost_asio.reference.basic_socket `basic_socket`] class template provi
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -26822,9 +27412,9 @@ Bitmask type for flags that can be passed to send and receive operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -26909,9 +27499,9 @@ The native representation of a socket.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -27272,9 +27862,9 @@ This function is intended to allow the encapsulation of arbitrary non-blocking s
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -27441,9 +28031,9 @@ Implements the FIONBIO IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -27564,13 +28154,34 @@ This function opens the socket so that it will use the specified protocol.
[endsect]
-
[section:operator_eq_ basic_socket::operator=]
[indexterm2 operator=..basic_socket]
Move-assign a [link boost_asio.reference.basic_socket `basic_socket`] from another.
+ basic_socket & ``[link boost_asio.reference.basic_socket.operator_eq_.overload1 operator=]``(
+ basic_socket && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_socket.operator_eq_.overload1 more...]]``
+
+
+Move-assign a [link boost_asio.reference.basic_socket `basic_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SocketService SocketService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket >::type & ``[link boost_asio.reference.basic_socket.operator_eq_.overload2 operator=]``(
+ basic_socket< Protocol1, SocketService1 > && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_socket.operator_eq_.overload2 more...]]``
+
+
+[section:overload1 basic_socket::operator= (1 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_socket `basic_socket`] from another.
+
+
basic_socket & operator=(
basic_socket && other);
@@ -27599,6 +28210,45 @@ Following the move, the moved-from object is in the same state as if constructed
+[section:overload2 basic_socket::operator= (2 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_socket `basic_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SocketService SocketService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket >::type & operator=(
+ basic_socket< Protocol1, SocketService1 > && other);
+
+
+This assignment operator moves a socket from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_socket `basic_socket`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
[section:protocol_type basic_socket::protocol_type]
[indexterm2 protocol_type..basic_socket]
@@ -27611,9 +28261,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -27665,9 +28315,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -27719,9 +28369,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -27884,9 +28534,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -27938,9 +28588,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -27992,9 +28642,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -28040,9 +28690,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket.hpp]
+['Header: ][^boost/asio/basic_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -28550,7 +29200,9 @@ Provides the ability to accept new connections.
Construct a basic_socket_acceptor on an existing native acceptor.
- Move-construct a basic_socket_acceptor from another. ]
+ Move-construct a basic_socket_acceptor from another.
+
+ Move-construct a basic_socket_acceptor from an acceptor of another protocol type. ]
]
[
@@ -28629,7 +29281,9 @@ Provides the ability to accept new connections.
[
[[link boost_asio.reference.basic_socket_acceptor.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket_acceptor from another. ]
+ [Move-assign a basic_socket_acceptor from another.
+
+ Move-assign a basic_socket_acceptor from an acceptor of another protocol type. ]
]
[
@@ -28707,9 +29361,9 @@ The [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Example]
@@ -28730,9 +29384,9 @@ Opening a socket acceptor with the SO\_REUSEADDR option enabled:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:accept basic_socket_acceptor::accept]
@@ -28741,16 +29395,20 @@ Accept a new connection.
template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
typename ``[link boost_asio.reference.SocketService SocketService]``>
void ``[link boost_asio.reference.basic_socket_acceptor.accept.overload1 accept]``(
- basic_socket< protocol_type, SocketService > & peer);
+ basic_socket< Protocol1, SocketService > & peer,
+ typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type * = 0);
`` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.accept.overload1 more...]]``
template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
typename ``[link boost_asio.reference.SocketService SocketService]``>
boost::system::error_code ``[link boost_asio.reference.basic_socket_acceptor.accept.overload2 accept]``(
- basic_socket< protocol_type, SocketService > & peer,
- boost::system::error_code & ec);
+ basic_socket< Protocol1, SocketService > & peer,
+ boost::system::error_code & ec,
+ typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type * = 0);
`` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.accept.overload2 more...]]``
@@ -28780,9 +29438,11 @@ Accept a new connection.
template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
typename ``[link boost_asio.reference.SocketService SocketService]``>
void accept(
- basic_socket< protocol_type, SocketService > & peer);
+ basic_socket< Protocol1, SocketService > & peer,
+ typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type * = 0);
This function is used to accept a new connection from a peer into the given socket. The function call will block until a new connection has been accepted successfully or an error occurs.
@@ -28834,10 +29494,12 @@ Accept a new connection.
template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
typename ``[link boost_asio.reference.SocketService SocketService]``>
boost::system::error_code accept(
- basic_socket< protocol_type, SocketService > & peer,
- boost::system::error_code & ec);
+ basic_socket< Protocol1, SocketService > & peer,
+ boost::system::error_code & ec,
+ typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type * = 0);
This function is used to accept a new connection from a peer into the given socket. The function call will block until a new connection has been accepted successfully or an error occurs.
@@ -29053,17 +29715,19 @@ Start an asynchronous accept.
template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
typename ``[link boost_asio.reference.SocketService SocketService]``,
typename ``[link boost_asio.reference.AcceptHandler AcceptHandler]``>
- void ``[link boost_asio.reference.basic_socket_acceptor.async_accept.overload1 async_accept]``(
- basic_socket< protocol_type, SocketService > & peer,
- AcceptHandler handler);
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_socket_acceptor.async_accept.overload1 async_accept]``(
+ basic_socket< Protocol1, SocketService > & peer,
+ AcceptHandler handler,
+ typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type * = 0);
`` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.async_accept.overload1 more...]]``
template<
typename ``[link boost_asio.reference.SocketService SocketService]``,
typename ``[link boost_asio.reference.AcceptHandler AcceptHandler]``>
- void ``[link boost_asio.reference.basic_socket_acceptor.async_accept.overload2 async_accept]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_socket_acceptor.async_accept.overload2 async_accept]``(
basic_socket< protocol_type, SocketService > & peer,
endpoint_type & peer_endpoint,
AcceptHandler handler);
@@ -29077,11 +29741,13 @@ Start an asynchronous accept.
template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
typename ``[link boost_asio.reference.SocketService SocketService]``,
typename ``[link boost_asio.reference.AcceptHandler AcceptHandler]``>
- void async_accept(
- basic_socket< protocol_type, SocketService > & peer,
- AcceptHandler handler);
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_accept(
+ basic_socket< Protocol1, SocketService > & peer,
+ AcceptHandler handler,
+ typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type * = 0);
This function is used to asynchronously accept a new connection into a socket. The function call always returns immediately.
@@ -29143,7 +29809,7 @@ Start an asynchronous accept.
template<
typename ``[link boost_asio.reference.SocketService SocketService]``,
typename ``[link boost_asio.reference.AcceptHandler AcceptHandler]``>
- void async_accept(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_accept(
basic_socket< protocol_type, SocketService > & peer,
endpoint_type & peer_endpoint,
AcceptHandler handler);
@@ -29227,7 +29893,19 @@ Move-construct a [link boost_asio.reference.basic_socket_acceptor `basic_socket_
`` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor.overload5 more...]]``
-[section:overload1 basic_socket_acceptor::basic_socket_acceptor (1 of 5 overloads)]
+Move-construct a [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] from an acceptor of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SocketAcceptorService SocketAcceptorService1]``>
+ ``[link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor.overload6 basic_socket_acceptor]``(
+ basic_socket_acceptor< Protocol1, SocketAcceptorService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor.overload6 more...]]``
+
+
+[section:overload1 basic_socket_acceptor::basic_socket_acceptor (1 of 6 overloads)]
Construct an acceptor without opening it.
@@ -29256,7 +29934,7 @@ This constructor creates an acceptor without opening it to listen for new connec
-[section:overload2 basic_socket_acceptor::basic_socket_acceptor (2 of 5 overloads)]
+[section:overload2 basic_socket_acceptor::basic_socket_acceptor (2 of 6 overloads)]
Construct an open acceptor.
@@ -29298,7 +29976,7 @@ This constructor creates an acceptor and automatically opens it.
-[section:overload3 basic_socket_acceptor::basic_socket_acceptor (3 of 5 overloads)]
+[section:overload3 basic_socket_acceptor::basic_socket_acceptor (3 of 6 overloads)]
Construct an acceptor opened on the given endpoint.
@@ -29358,7 +30036,7 @@ This constructor is equivalent to the following code:
-[section:overload4 basic_socket_acceptor::basic_socket_acceptor (4 of 5 overloads)]
+[section:overload4 basic_socket_acceptor::basic_socket_acceptor (4 of 6 overloads)]
Construct a [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] on an existing native acceptor.
@@ -29403,7 +30081,7 @@ This constructor creates an acceptor object to hold an existing native acceptor.
-[section:overload5 basic_socket_acceptor::basic_socket_acceptor (5 of 5 overloads)]
+[section:overload5 basic_socket_acceptor::basic_socket_acceptor (5 of 6 overloads)]
Move-construct a [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] from another.
@@ -29436,6 +30114,44 @@ Following the move, the moved-from object is in the same state as if constructed
[endsect]
+
+[section:overload6 basic_socket_acceptor::basic_socket_acceptor (6 of 6 overloads)]
+
+
+Move-construct a [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] from an acceptor of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SocketAcceptorService SocketAcceptorService1]``>
+ basic_socket_acceptor(
+ basic_socket_acceptor< Protocol1, SocketAcceptorService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+
+
+This constructor moves an acceptor from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
[endsect]
[section:bind basic_socket_acceptor::bind]
@@ -29492,8 +30208,9 @@ This function binds the socket acceptor to the specified endpoint on the local m
boost::asio::ip::tcp::acceptor acceptor(io_service);
- acceptor.open(boost::asio::ip::tcp::v4());
- acceptor.bind(boost::asio::ip::tcp::endpoint(12345));
+ boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 12345);
+ acceptor.open(endpoint.protocol());
+ acceptor.bind(endpoint);
@@ -29536,9 +30253,10 @@ This function binds the socket acceptor to the specified endpoint on the local m
boost::asio::ip::tcp::acceptor acceptor(io_service);
- acceptor.open(boost::asio::ip::tcp::v4());
+ boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 12345);
+ acceptor.open(endpoint.protocol());
boost::system::error_code ec;
- acceptor.bind(boost::asio::ip::tcp::endpoint(12345), ec);
+ acceptor.bind(endpoint, ec);
if (ec)
{
// An error occurred.
@@ -29601,9 +30319,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -29644,9 +30362,9 @@ Implements the FIONREAD IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -29863,9 +30581,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -29917,9 +30635,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -29971,9 +30689,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -29992,9 +30710,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -30286,9 +31004,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -30483,9 +31201,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -30538,9 +31256,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -30829,9 +31547,9 @@ Bitmask type for flags that can be passed to send and receive operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -30916,9 +31634,9 @@ The native representation of an acceptor.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -31060,9 +31778,9 @@ This function is used to modify the non-blocking mode of the underlying native a
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -31229,9 +31947,9 @@ Implements the FIONBIO IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -31352,13 +32070,34 @@ This function opens the socket acceptor so that it will use the specified protoc
[endsect]
-
[section:operator_eq_ basic_socket_acceptor::operator=]
[indexterm2 operator=..basic_socket_acceptor]
Move-assign a [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] from another.
+ basic_socket_acceptor & ``[link boost_asio.reference.basic_socket_acceptor.operator_eq_.overload1 operator=]``(
+ basic_socket_acceptor && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.operator_eq_.overload1 more...]]``
+
+
+Move-assign a [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] from an acceptor of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SocketAcceptorService SocketAcceptorService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket_acceptor >::type & ``[link boost_asio.reference.basic_socket_acceptor.operator_eq_.overload2 operator=]``(
+ basic_socket_acceptor< Protocol1, SocketAcceptorService1 > && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.operator_eq_.overload2 more...]]``
+
+
+[section:overload1 basic_socket_acceptor::operator= (1 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] from another.
+
+
basic_socket_acceptor & operator=(
basic_socket_acceptor && other);
@@ -31387,6 +32126,45 @@ Following the move, the moved-from object is in the same state as if constructed
+[section:overload2 basic_socket_acceptor::operator= (2 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] from an acceptor of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.SocketAcceptorService SocketAcceptorService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket_acceptor >::type & operator=(
+ basic_socket_acceptor< Protocol1, SocketAcceptorService1 > && other);
+
+
+This assignment operator moves an acceptor from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
[section:protocol_type basic_socket_acceptor::protocol_type]
[indexterm2 protocol_type..basic_socket_acceptor]
@@ -31399,9 +32177,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -31453,9 +32231,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -31507,9 +32285,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -31561,9 +32339,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -31615,9 +32393,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -31669,9 +32447,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -31717,9 +32495,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_acceptor.hpp]
+['Header: ][^boost/asio/basic_socket_acceptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -31989,9 +32767,9 @@ Iostream interface for a socket.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_iostream.hpp]
+['Header: ][^boost/asio/basic_socket_iostream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:basic_socket_iostream basic_socket_iostream::basic_socket_iostream]
@@ -32105,9 +32883,9 @@ The duration type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_iostream.hpp]
+['Header: ][^boost/asio/basic_socket_iostream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -32126,9 +32904,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_iostream.hpp]
+['Header: ][^boost/asio/basic_socket_iostream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -32334,9 +33112,9 @@ The time type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_iostream.hpp]
+['Header: ][^boost/asio/basic_socket_iostream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -32796,9 +33574,9 @@ Iostream streambuf for a socket.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign basic_socket_streambuf::assign]
@@ -32870,7 +33648,7 @@ Start an asynchronous connect.
template<
typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
const endpoint_type & peer_endpoint,
ConnectHandler handler);
@@ -33287,9 +34065,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -33330,9 +34108,9 @@ Implements the FIONREAD IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -33734,9 +34512,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -33788,9 +34566,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -33809,9 +34587,9 @@ The duration type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -33863,9 +34641,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -33884,9 +34662,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -34188,7 +34966,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
...
boost::asio::ip::tcp::socket::keep_alive option;
socket.get_option(option);
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -34245,7 +35023,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
{
// An error occurred.
}
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -34339,9 +35117,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -34490,9 +35268,9 @@ Getting the number of bytes ready to read:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -34561,9 +35339,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -34616,9 +35394,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -35018,7 +35796,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
Construct a basic_socket on an existing native socket.
- Move-construct a basic_socket from another. ]
+ Move-construct a basic_socket from another.
+
+ Move-construct a basic_socket from a socket of another protocol type. ]
]
[
@@ -35104,7 +35884,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
[
[[link boost_asio.reference.basic_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket from another. ]
+ [Move-assign a basic_socket from another.
+
+ Move-assign a basic_socket from a socket of another protocol type. ]
]
[
@@ -35197,18 +35979,18 @@ The [link boost_asio.reference.basic_socket `basic_socket`] class template provi
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -35281,9 +36063,9 @@ Bitmask type for flags that can be passed to send and receive operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -35377,9 +36159,9 @@ The native representation of a socket.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -35752,9 +36534,9 @@ This function is intended to allow the encapsulation of arbitrary non-blocking s
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -35930,9 +36712,9 @@ Implements the FIONBIO IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -36088,9 +36870,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -36163,9 +36945,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -36217,9 +36999,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -36388,9 +37170,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -36442,9 +37224,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -36496,9 +37278,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -36544,9 +37326,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -36886,9 +37668,9 @@ The time type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -36904,9 +37686,9 @@ The time type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_socket_streambuf.hpp]
+['Header: ][^boost/asio/basic_socket_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -37168,7 +37950,9 @@ Provides stream-oriented socket functionality.
Construct a basic_stream_socket on an existing native socket.
- Move-construct a basic_stream_socket from another. ]
+ Move-construct a basic_stream_socket from another.
+
+ Move-construct a basic_stream_socket from a socket of another protocol type. ]
]
[
@@ -37254,7 +38038,9 @@ Provides stream-oriented socket functionality.
[
[[link boost_asio.reference.basic_stream_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_stream_socket from another. ]
+ [Move-assign a basic_stream_socket from another.
+
+ Move-assign a basic_stream_socket from a socket of another protocol type. ]
]
[
@@ -37364,18 +38150,18 @@ The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign basic_stream_socket::assign]
@@ -37447,7 +38233,7 @@ Start an asynchronous connect.
template<
typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
const endpoint_type & peer_endpoint,
ConnectHandler handler);
@@ -37513,7 +38299,7 @@ Start an asynchronous read.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some(
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -37569,7 +38355,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_stream_socket.async_receive.overload1 async_receive]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_stream_socket.async_receive.overload1 async_receive]``(
const MutableBufferSequence & buffers,
ReadHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.async_receive.overload1 more...]]``
@@ -37577,7 +38363,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void ``[link boost_asio.reference.basic_stream_socket.async_receive.overload2 async_receive]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_stream_socket.async_receive.overload2 async_receive]``(
const MutableBufferSequence & buffers,
socket_base::message_flags flags,
ReadHandler handler);
@@ -37593,7 +38379,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -37650,7 +38436,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
const MutableBufferSequence & buffers,
socket_base::message_flags flags,
ReadHandler handler);
@@ -37711,7 +38497,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.basic_stream_socket.async_send.overload1 async_send]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_stream_socket.async_send.overload1 async_send]``(
const ConstBufferSequence & buffers,
WriteHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.async_send.overload1 more...]]``
@@ -37719,7 +38505,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void ``[link boost_asio.reference.basic_stream_socket.async_send.overload2 async_send]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.basic_stream_socket.async_send.overload2 async_send]``(
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
WriteHandler handler);
@@ -37735,7 +38521,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send(
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -37792,7 +38578,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send(
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
WriteHandler handler);
@@ -37854,7 +38640,7 @@ Start an asynchronous write.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some(
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -38124,7 +38910,19 @@ Move-construct a [link boost_asio.reference.basic_stream_socket `basic_stream_so
`` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.basic_stream_socket.overload5 more...]]``
-[section:overload1 basic_stream_socket::basic_stream_socket (1 of 5 overloads)]
+Move-construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.StreamSocketService StreamSocketService1]``>
+ ``[link boost_asio.reference.basic_stream_socket.basic_stream_socket.overload6 basic_stream_socket]``(
+ basic_stream_socket< Protocol1, StreamSocketService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.basic_stream_socket.overload6 more...]]``
+
+
+[section:overload1 basic_stream_socket::basic_stream_socket (1 of 6 overloads)]
Construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] without opening it.
@@ -38153,7 +38951,7 @@ This constructor creates a stream socket without opening it. The socket needs to
-[section:overload2 basic_stream_socket::basic_stream_socket (2 of 5 overloads)]
+[section:overload2 basic_stream_socket::basic_stream_socket (2 of 6 overloads)]
Construct and open a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`].
@@ -38195,7 +38993,7 @@ This constructor creates and opens a stream socket. The socket needs to be conne
-[section:overload3 basic_stream_socket::basic_stream_socket (3 of 5 overloads)]
+[section:overload3 basic_stream_socket::basic_stream_socket (3 of 6 overloads)]
Construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`], opening it and binding it to the given local endpoint.
@@ -38237,7 +39035,7 @@ This constructor creates a stream socket and automatically opens it bound to the
-[section:overload4 basic_stream_socket::basic_stream_socket (4 of 5 overloads)]
+[section:overload4 basic_stream_socket::basic_stream_socket (4 of 6 overloads)]
Construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] on an existing native socket.
@@ -38282,7 +39080,7 @@ This constructor creates a stream socket object to hold an existing native socke
-[section:overload5 basic_stream_socket::basic_stream_socket (5 of 5 overloads)]
+[section:overload5 basic_stream_socket::basic_stream_socket (5 of 6 overloads)]
Move-construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] from another.
@@ -38315,6 +39113,44 @@ Following the move, the moved-from object is in the same state as if constructed
[endsect]
+
+[section:overload6 basic_stream_socket::basic_stream_socket (6 of 6 overloads)]
+
+
+Move-construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.StreamSocketService StreamSocketService1]``>
+ basic_stream_socket(
+ basic_stream_socket< Protocol1, StreamSocketService1 > && other,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+
+
+This constructor moves a stream socket from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_stream_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
[endsect]
[section:bind basic_stream_socket::bind]
@@ -38488,9 +39324,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -38531,9 +39367,9 @@ Implements the FIONREAD IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -38935,9 +39771,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -38989,9 +39825,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -39043,9 +39879,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -39064,9 +39900,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -39209,7 +40045,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
...
boost::asio::ip::tcp::socket::keep_alive option;
socket.get_option(option);
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -39266,7 +40102,7 @@ Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
{
// An error occurred.
}
- bool is_set = option.get();
+ bool is_set = option.value();
@@ -39360,9 +40196,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -39564,9 +40400,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -39619,9 +40455,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -40021,7 +40857,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
Construct a basic_socket on an existing native socket.
- Move-construct a basic_socket from another. ]
+ Move-construct a basic_socket from another.
+
+ Move-construct a basic_socket from a socket of another protocol type. ]
]
[
@@ -40107,7 +40945,9 @@ A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest l
[
[[link boost_asio.reference.basic_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket from another. ]
+ [Move-assign a basic_socket from another.
+
+ Move-assign a basic_socket from a socket of another protocol type. ]
]
[
@@ -40200,18 +41040,18 @@ The [link boost_asio.reference.basic_socket `basic_socket`] class template provi
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -40284,9 +41124,9 @@ Bitmask type for flags that can be passed to send and receive operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -40377,9 +41217,9 @@ The native representation of a socket.
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -40749,9 +41589,9 @@ This function is intended to allow the encapsulation of arbitrary non-blocking s
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -40927,9 +41767,9 @@ Implements the FIONBIO IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -41056,13 +41896,34 @@ This function opens the socket so that it will use the specified protocol.
[endsect]
-
[section:operator_eq_ basic_stream_socket::operator=]
[indexterm2 operator=..basic_stream_socket]
Move-assign a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] from another.
+ basic_stream_socket & ``[link boost_asio.reference.basic_stream_socket.operator_eq_.overload1 operator=]``(
+ basic_stream_socket && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.operator_eq_.overload1 more...]]``
+
+
+Move-assign a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.StreamSocketService StreamSocketService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_stream_socket >::type & ``[link boost_asio.reference.basic_stream_socket.operator_eq_.overload2 operator=]``(
+ basic_stream_socket< Protocol1, StreamSocketService1 > && other);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.operator_eq_.overload2 more...]]``
+
+
+[section:overload1 basic_stream_socket::operator= (1 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] from another.
+
+
basic_stream_socket & operator=(
basic_stream_socket && other);
@@ -41091,6 +41952,45 @@ Following the move, the moved-from object is in the same state as if constructed
+[section:overload2 basic_stream_socket::operator= (2 of 2 overloads)]
+
+
+Move-assign a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] from a socket of another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
+ typename ``[link boost_asio.reference.StreamSocketService StreamSocketService1]``>
+ enable_if< is_convertible< Protocol1, Protocol >::value, basic_stream_socket >::type & operator=(
+ basic_stream_socket< Protocol1, StreamSocketService1 > && other);
+
+
+This assignment operator moves a stream socket from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_stream_socket(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
[section:protocol_type basic_stream_socket::protocol_type]
[indexterm2 protocol_type..basic_stream_socket]
@@ -41103,9 +42003,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -41488,9 +42388,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -41542,9 +42442,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -41713,9 +42613,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -41968,9 +42868,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -42022,9 +42922,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -42070,9 +42970,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_stream_socket.hpp]
+['Header: ][^boost/asio/basic_stream_socket.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -42656,9 +43556,9 @@ Reading from a socket directly into a streambuf:
[heading Requirements]
-[*Header: ][^boost/asio/basic_streambuf.hpp]
+['Header: ][^boost/asio/basic_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:basic_streambuf basic_streambuf::basic_streambuf]
@@ -42694,14 +43594,9 @@ Appends `n` characters from the start of the output sequence to the input sequen
Requires a preceding call `prepare(x)` where `x >= n`, and no intervening operations that modify the input or output sequence.
-[heading Exceptions]
-
-
-[variablelist
-
-[[std::length_error][If `n` is greater than the size of the output sequence. ]]
-
-]
+[heading Remarks]
+
+If `n` is greater than the size of the output sequence, the entire output sequence is moved to the input sequence and no error is issued.
@@ -42722,9 +43617,9 @@ The type used to represent the input sequence as a list of buffers.
[heading Requirements]
-[*Header: ][^boost/asio/basic_streambuf.hpp]
+['Header: ][^boost/asio/basic_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -42744,14 +43639,9 @@ Remove characters from the input sequence.
Removes `n` characters from the beginning of the input sequence.
-[heading Exceptions]
-
-
-[variablelist
-
-[[std::length_error][If `n > size()`. ]]
-
-]
+[heading Remarks]
+
+If `n` is greater than the size of the input sequence, the entire input sequence is consumed and no error is issued.
@@ -42819,9 +43709,9 @@ The type used to represent the output sequence as a list of buffers.
[heading Requirements]
-[*Header: ][^boost/asio/basic_streambuf.hpp]
+['Header: ][^boost/asio/basic_streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -43100,7 +43990,7 @@ The [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] clas
A waitable timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
-Most applications will use the boost::asio::waitable\_timer typedef.
+Most applications will use one of the [link boost_asio.reference.steady_timer `steady_timer`], [link boost_asio.reference.system_timer `system_timer`] or [link boost_asio.reference.high_resolution_timer `high_resolution_timer`] typedefs.
[heading Remarks]
@@ -43110,20 +44000,20 @@ This waitable timer functionality is for use with the C++11 standard library's `
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Examples]
-Performing a blocking wait:
+Performing a blocking wait (C++11):
// Construct a timer without setting an expiry time.
- boost::asio::waitable_timer timer(io_service);
+ boost::asio::steady_timer timer(io_service);
// Set an expiry time relative to now.
- timer.expires_from_now(boost::posix_time::seconds(5));
+ timer.expires_from_now(std::chrono::seconds(5));
// Wait for the timer to expire.
timer.wait();
@@ -43132,7 +44022,7 @@ Performing a blocking wait:
-Performing an asynchronous wait:
+Performing an asynchronous wait (C++11):
void handler(const boost::system::error_code& error)
{
@@ -43145,8 +44035,8 @@ Performing an asynchronous wait:
...
// Construct a timer with an absolute expiry time.
- boost::asio::waitable_timer timer(io_service,
- boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
+ boost::asio::steady_timer timer(io_service,
+ std::chrono::steady_clock::now() + std::chrono::seconds(60));
// Start an asynchronous wait.
timer.async_wait(handler);
@@ -43155,7 +44045,7 @@ Performing an asynchronous wait:
-[heading Changing an active waitable_timer's expiry time]
+[heading Changing an active waitable timer's expiry time]
@@ -43197,9 +44087,9 @@ Changing the expiry time of a timer while there are pending asynchronous waits c
[heading Requirements]
-[*Header: ][^boost/asio/basic_waitable_timer.hpp]
+['Header: ][^boost/asio/basic_waitable_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:async_wait basic_waitable_timer::async_wait]
@@ -43210,7 +44100,7 @@ Start an asynchronous wait on the timer.
template<
typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
- void async_wait(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_wait(
WaitHandler handler);
@@ -43598,9 +44488,9 @@ The clock type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_waitable_timer.hpp]
+['Header: ][^boost/asio/basic_waitable_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -43619,9 +44509,9 @@ The duration type of the clock.
[heading Requirements]
-[*Header: ][^boost/asio/basic_waitable_timer.hpp]
+['Header: ][^boost/asio/basic_waitable_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -44068,9 +44958,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/basic_waitable_timer.hpp]
+['Header: ][^boost/asio/basic_waitable_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -44116,9 +45006,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/basic_waitable_timer.hpp]
+['Header: ][^boost/asio/basic_waitable_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -44137,9 +45027,9 @@ The time point type of the clock.
[heading Requirements]
-[*Header: ][^boost/asio/basic_waitable_timer.hpp]
+['Header: ][^boost/asio/basic_waitable_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -44158,9 +45048,9 @@ The wait traits type.
[heading Requirements]
-[*Header: ][^boost/asio/basic_waitable_timer.hpp]
+['Header: ][^boost/asio/basic_waitable_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -44241,6 +45131,198 @@ This function is used to wait for the timer to expire. This function blocks and
[endsect]
+[section:basic_yield_context basic_yield_context]
+
+
+Context object the represents the currently executing coroutine.
+
+
+ template<
+ typename ``[link boost_asio.reference.Handler Handler]``>
+ class basic_yield_context
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_yield_context.callee_type [*callee_type]]]
+ [The coroutine callee type, used by the implementation. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_yield_context.caller_type [*caller_type]]]
+ [The coroutine caller type, used by the implementation. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_yield_context.basic_yield_context [*basic_yield_context]]]
+ [Construct a yield context to represent the specified coroutine. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_yield_context.operator_lb__rb_ [*operator\[\]]]]
+ [Return a yield context that sets the specified error_code. ]
+ ]
+
+]
+
+The [link boost_asio.reference.basic_yield_context `basic_yield_context`] class is used to represent the currently executing stackful coroutine. A [link boost_asio.reference.basic_yield_context `basic_yield_context`] may be passed as a handler to an asynchronous operation. For example:
+
+
+
+ template <typename Handler>
+ void my_coroutine(basic_yield_context<Handler> yield)
+ {
+ ...
+ std::size_t n = my_socket.async_read_some(buffer, yield);
+ ...
+ }
+
+
+
+
+The initiating function (async\_read\_some in the above example) suspends the current coroutine. The coroutine is resumed when the asynchronous operation completes, and the result of the operation is returned.
+
+[heading Requirements]
+
+['Header: ][^boost/asio/spawn.hpp]
+
+['Convenience header: ]None
+
+
+[section:basic_yield_context basic_yield_context::basic_yield_context]
+
+[indexterm2 basic_yield_context..basic_yield_context]
+Construct a yield context to represent the specified coroutine.
+
+
+ basic_yield_context(
+ const detail::weak_ptr< callee_type > & coro,
+ caller_type & ca,
+ Handler & handler);
+
+
+Most applications do not need to use this constructor. Instead, the `spawn()` function passes a yield context as an argument to the coroutine function.
+
+
+[endsect]
+
+
+
+[section:callee_type basic_yield_context::callee_type]
+
+[indexterm2 callee_type..basic_yield_context]
+The coroutine callee type, used by the implementation.
+
+
+ typedef implementation_defined callee_type;
+
+
+
+When using Boost.Coroutine v1, this type is:
+
+ typename coroutine<void()>
+
+
+When using Boost.Coroutine v2 (unidirectional coroutines), this type is:
+
+ push_coroutine<void>
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/spawn.hpp]
+
+['Convenience header: ]None
+
+
+[endsect]
+
+
+
+[section:caller_type basic_yield_context::caller_type]
+
+[indexterm2 caller_type..basic_yield_context]
+The coroutine caller type, used by the implementation.
+
+
+ typedef implementation_defined caller_type;
+
+
+
+When using Boost.Coroutine v1, this type is:
+
+ typename coroutine<void()>::caller_type
+
+
+When using Boost.Coroutine v2 (unidirectional coroutines), this type is:
+
+ pull_coroutine<void>
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/spawn.hpp]
+
+['Convenience header: ]None
+
+
+[endsect]
+
+
+
+[section:operator_lb__rb_ basic_yield_context::operator\[\]]
+
+[indexterm2 operator\[\]..basic_yield_context]
+Return a yield context that sets the specified error\_code.
+
+
+ basic_yield_context operator[](
+ boost::system::error_code & ec) const;
+
+
+By default, when a yield context is used with an asynchronous operation, a non-success error\_code is converted to system\_error and thrown. This operator may be used to specify an error\_code object that should instead be set with the asynchronous operation's result. For example:
+
+
+
+ template <typename Handler>
+ void my_coroutine(basic_yield_context<Handler> yield)
+ {
+ ...
+ std::size_t n = my_socket.async_read_some(buffer, yield[ec]);
+ if (ec)
+ {
+ // An error occurred.
+ }
+ ...
+ }
+
+
+
+
+
+[endsect]
+
+
+
+[endsect]
+
[section:buffer buffer]
[indexterm1 buffer]
@@ -44474,7 +45556,7 @@ An individual buffer may be created from a builtin array, std::vector, std::arra
-In all three cases above, the buffers created are exactly 128 bytes long. Note that a vector is [*never] automatically resized when creating or using a buffer. The buffer size is determined using the vector's `size()` member function, and not its capacity.
+In all three cases above, the buffers created are exactly 128 bytes long. Note that a vector is ['never] automatically resized when creating or using a buffer. The buffer size is determined using the vector's `size()` member function, and not its capacity.
[heading Accessing Buffer Contents]
@@ -44519,6 +45601,8 @@ In particular, when used with the [link boost_asio.reference.buffer_size `buffer
+Note that [link boost_asio.reference.buffer_copy `buffer_copy`] is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
+
[heading Buffer Invalidation]
@@ -44616,9 +45700,9 @@ To read or write using multiple buffers (i.e. scatter-gather I/O), multiple buff
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 buffer (1 of 28 overloads)]
@@ -45555,9 +46639,9 @@ The `boost::asio::buffer_cast` function permits violations of type safety, so us
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 buffer_cast (1 of 2 overloads)]
@@ -45815,13 +46899,15 @@ Both forms return the number of bytes actually copied. The number of bytes copie
* `If` specified, `max_bytes_to_copy`.
-This prevents buffer overflow, regardless of the buffer sizes used in the copy operation.
+This prevents buffer overflow, regardless of the buffer sizes used in the copy operation.
+
+Note that [link boost_asio.reference.buffer_copy `buffer_copy`] is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 buffer_copy (1 of 30 overloads)]
@@ -45863,7 +46949,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -45909,7 +46995,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -45955,7 +47041,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46001,7 +47087,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46049,7 +47135,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46095,7 +47181,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46141,7 +47227,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46187,7 +47273,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46233,7 +47319,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46281,7 +47367,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46329,7 +47415,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46377,7 +47463,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46425,7 +47511,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46473,7 +47559,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46522,7 +47608,7 @@ The number of bytes copied is the lesser of:
* `buffer_size(source)`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46574,7 +47660,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46626,7 +47712,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46678,7 +47764,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46730,7 +47816,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46784,7 +47870,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46836,7 +47922,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46888,7 +47974,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46940,7 +48026,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -46992,7 +48078,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -47046,7 +48132,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -47100,7 +48186,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -47154,7 +48240,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -47208,7 +48294,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -47262,7 +48348,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -47317,7 +48403,7 @@ The number of bytes copied is the lesser of:
* `max_bytes_to_copy`
-
+This function is implemented in terms of `memcpy`, and consequently it cannot be used to copy between overlapping memory regions.
[endsect]
@@ -47355,9 +48441,9 @@ The `boost::asio::buffer_size` function determines the total number of bytes in
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 buffer_size (1 of 5 overloads)]
@@ -47569,18 +48655,18 @@ The [link boost_asio.reference.buffered_read_stream `buffered_read_stream`] clas
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/buffered_read_stream.hpp]
+['Header: ][^boost/asio/buffered_read_stream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:async_fill buffered_read_stream::async_fill]
@@ -47591,7 +48677,7 @@ Start an asynchronous fill.
template<
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_fill(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_fill(
ReadHandler handler);
@@ -47609,7 +48695,7 @@ Start an asynchronous read. The buffer into which the data will be read must be
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some(
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -47628,7 +48714,7 @@ Start an asynchronous write. The data being written must be valid for the lifeti
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some(
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -47916,9 +49002,9 @@ The type of the lowest layer.
[heading Requirements]
-[*Header: ][^boost/asio/buffered_read_stream.hpp]
+['Header: ][^boost/asio/buffered_read_stream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -47945,15 +49031,15 @@ Get a reference to the next layer.
The type of the next layer.
- typedef boost::remove_reference< Stream >::type next_layer_type;
+ typedef remove_reference< Stream >::type next_layer_type;
[heading Requirements]
-[*Header: ][^boost/asio/buffered_read_stream.hpp]
+['Header: ][^boost/asio/buffered_read_stream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -48272,18 +49358,18 @@ The [link boost_asio.reference.buffered_stream `buffered_stream`] class template
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/buffered_stream.hpp]
+['Header: ][^boost/asio/buffered_stream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:async_fill buffered_stream::async_fill]
@@ -48294,7 +49380,7 @@ Start an asynchronous fill.
template<
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_fill(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_fill(
ReadHandler handler);
@@ -48311,7 +49397,7 @@ Start an asynchronous flush.
template<
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_flush(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_flush(
WriteHandler handler);
@@ -48329,7 +49415,7 @@ Start an asynchronous read. The buffer into which the data will be read must be
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some(
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -48348,7 +49434,7 @@ Start an asynchronous write. The data being written must be valid for the lifeti
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some(
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -48672,9 +49758,9 @@ The type of the lowest layer.
[heading Requirements]
-[*Header: ][^boost/asio/buffered_stream.hpp]
+['Header: ][^boost/asio/buffered_stream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -48701,15 +49787,15 @@ Get a reference to the next layer.
The type of the next layer.
- typedef boost::remove_reference< Stream >::type next_layer_type;
+ typedef remove_reference< Stream >::type next_layer_type;
[heading Requirements]
-[*Header: ][^boost/asio/buffered_stream.hpp]
+['Header: ][^boost/asio/buffered_stream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -49027,18 +50113,18 @@ The [link boost_asio.reference.buffered_write_stream `buffered_write_stream`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/buffered_write_stream.hpp]
+['Header: ][^boost/asio/buffered_write_stream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:async_flush buffered_write_stream::async_flush]
@@ -49049,7 +50135,7 @@ Start an asynchronous flush.
template<
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_flush(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_flush(
WriteHandler handler);
@@ -49067,7 +50153,7 @@ Start an asynchronous read. The buffer into which the data will be read must be
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some(
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -49086,7 +50172,7 @@ Start an asynchronous write. The data being written must be valid for the lifeti
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some(
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -49374,9 +50460,9 @@ The type of the lowest layer.
[heading Requirements]
-[*Header: ][^boost/asio/buffered_write_stream.hpp]
+['Header: ][^boost/asio/buffered_write_stream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -49403,15 +50489,15 @@ Get a reference to the next layer.
The type of the next layer.
- typedef boost::remove_reference< Stream >::type next_layer_type;
+ typedef remove_reference< Stream >::type next_layer_type;
[heading Requirements]
-[*Header: ][^boost/asio/buffered_write_stream.hpp]
+['Header: ][^boost/asio/buffered_write_stream.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -49615,9 +50701,9 @@ Construct an iterator representing the beginning of the buffers' data.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -49638,9 +50724,9 @@ Construct an iterator representing the end of the buffers' data.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -49807,9 +50893,9 @@ A random access iterator over the bytes in a buffer sequence.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:begin buffers_iterator::begin]
@@ -49853,9 +50939,9 @@ The type used for the distance between two iterators.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -49889,9 +50975,9 @@ The iterator category.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -49925,9 +51011,9 @@ Test two iterators for inequality.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -49963,9 +51049,9 @@ Addition operator.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -49985,9 +51071,9 @@ Addition operator.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -50088,9 +51174,9 @@ Subtraction operator.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -50110,9 +51196,9 @@ Subtraction operator.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -50211,9 +51297,9 @@ Compare two iterators.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -50233,9 +51319,9 @@ Compare two iterators.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -50255,9 +51341,9 @@ Test two iterators for equality.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -50277,9 +51363,9 @@ Compare two iterators.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -50299,9 +51385,9 @@ Compare two iterators.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -50337,9 +51423,9 @@ If the buffer sequence stores buffer objects that are convertible to [link boost
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -50360,9 +51446,9 @@ If the buffer sequence stores buffer objects that are convertible to [link boost
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -50381,9 +51467,9 @@ The type of the value pointed to by the iterator.
[heading Requirements]
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+['Header: ][^boost/asio/buffers_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -50488,9 +51574,9 @@ Establishes a socket connection by trying each endpoint in a sequence.
[heading Requirements]
-[*Header: ][^boost/asio/connect.hpp]
+['Header: ][^boost/asio/connect.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 connect (1 of 8 overloads)]
@@ -51207,9 +52293,9 @@ The `boost::asio::buffer_cast` function permits violations of type safety, so us
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:const_buffer const_buffer::const_buffer]
@@ -51403,9 +52489,9 @@ Adapts a single non-modifiable buffer so that it meets the requirements of the C
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:begin const_buffers_1::begin]
@@ -51486,9 +52572,9 @@ A random-access iterator type that may be used to read elements.
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -51623,9 +52709,382 @@ The `boost::asio::buffer_cast` function permits violations of type safety, so us
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:coroutine coroutine]
+
+
+Provides support for implementing stackless coroutines.
+
+
+ class coroutine
+
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.coroutine.coroutine [*coroutine]]]
+ [Constructs a coroutine in its initial state. ]
+ ]
+
+ [
+ [[link boost_asio.reference.coroutine.is_child [*is_child]]]
+ [Returns true if the coroutine is the child of a fork. ]
+ ]
+
+ [
+ [[link boost_asio.reference.coroutine.is_complete [*is_complete]]]
+ [Returns true if the coroutine has reached its terminal state. ]
+ ]
+
+ [
+ [[link boost_asio.reference.coroutine.is_parent [*is_parent]]]
+ [Returns true if the coroutine is the parent of a fork. ]
+ ]
+
+]
+
+The `coroutine` class may be used to implement stackless coroutines. The class itself is used to store the current state of the coroutine.
+
+Coroutines are copy-constructible and assignable, and the space overhead is a single int. They can be used as a base class:
+
+
+
+ class session : coroutine
+ {
+ ...
+ };
+
+
+
+
+or as a data member:
+
+
+
+ class session
+ {
+ ...
+ coroutine coro_;
+ };
+
+
+
+
+or even bound in as a function argument using lambdas or `bind()`. The important thing is that as the application maintains a copy of the object for as long as the coroutine must be kept alive.
+
+
+[heading Pseudo-keywords]
+
+
+
+A coroutine is used in conjunction with certain "pseudo-keywords", which are implemented as macros. These macros are defined by a header file:
+
+
+
+ #include <boost/asio/yield.hpp>
+
+
+
+
+and may conversely be undefined as follows:
+
+
+
+ #include <boost/asio/unyield.hpp>
+
+
+
+
+[*reenter]
+
+The `reenter` macro is used to define the body of a coroutine. It takes a single argument: a pointer or reference to a coroutine object. For example, if the base class is a coroutine object you may write:
+
+
+
+ reenter (this)
+ {
+ ... coroutine body ...
+ }
+
+
+
+
+and if a data member or other variable you can write:
+
+
+
+ reenter (coro_)
+ {
+ ... coroutine body ...
+ }
+
+
+
+
+When `reenter` is executed at runtime, control jumps to the location of the last `yield` or `fork`.
+
+The coroutine body may also be a single statement, such as:
+
+
+
+ reenter (this) for (;;)
+ {
+ ...
+ }
+
+
+
+
+[*Limitation:] The `reenter` macro is implemented using a switch. This means that you must take care when using local variables within the coroutine body. The local variable is not allowed in a position where reentering the coroutine could bypass the variable definition.
+
+[*yield ['statement]]
+
+This form of the `yield` keyword is often used with asynchronous operations:
+
+
+
+ yield socket_->async_read_some(buffer(*buffer_), *this);
+
+
+
+
+This divides into four logical steps:
+
+
+* `yield` saves the current state of the coroutine.
+
+* The statement initiates the asynchronous operation.
+
+* The resume point is defined immediately following the statement.
+
+* Control is transferred to the end of the coroutine body.
+
+When the asynchronous operation completes, the function object is invoked and `reenter` causes control to transfer to the resume point. It is important to remember to carry the coroutine state forward with the asynchronous operation. In the above snippet, the current class is a function object object with a coroutine object as base class or data member.
+
+The statement may also be a compound statement, and this permits us to define local variables with limited scope:
+
+
+
+ yield
+ {
+ mutable_buffers_1 b = buffer(*buffer_);
+ socket_->async_read_some(b, *this);
+ }
+
+
+
+
+[*yield return ['expression] ;]
+
+This form of `yield` is often used in generators or coroutine-based parsers. For example, the function object:
+
+
+
+ struct interleave : coroutine
+ {
+ istream& is1;
+ istream& is2;
+ char operator()(char c)
+ {
+ reenter (this) for (;;)
+ {
+ yield return is1.get();
+ yield return is2.get();
+ }
+ }
+ };
+
+
+
+
+defines a trivial coroutine that interleaves the characters from two input streams.
+
+This type of `yield` divides into three logical steps:
+
+
+* `yield` saves the current state of the coroutine.
+
+* The resume point is defined immediately following the semicolon.
+
+* The value of the expression is returned from the function.
+
+[*yield ;]
+
+This form of `yield` is equivalent to the following steps:
+
+
+* `yield` saves the current state of the coroutine.
+
+* The resume point is defined immediately following the semicolon.
+
+* Control is transferred to the end of the coroutine body.
+
+This form might be applied when coroutines are used for cooperative threading and scheduling is explicitly managed. For example:
+
+
+
+ struct task : coroutine
+ {
+ ...
+ void operator()()
+ {
+ reenter (this)
+ {
+ while (... not finished ...)
+ {
+ ... do something ...
+ yield;
+ ... do some more ...
+ yield;
+ }
+ }
+ }
+ ...
+ };
+ ...
+ task t1, t2;
+ for (;;)
+ {
+ t1();
+ t2();
+ }
+
+
+
+
+[*yield break ;]
+
+The final form of `yield` is used to explicitly terminate the coroutine. This form is comprised of two steps:
+
+
+* `yield` sets the coroutine state to indicate termination.
+
+* Control is transferred to the end of the coroutine body.
+
+Once terminated, calls to `is_complete()` return true and the coroutine cannot be reentered.
+
+Note that a coroutine may also be implicitly terminated if the coroutine body is exited without a yield, e.g. by return, throw or by running to the end of the body.
+
+[*fork ['statement]]
+
+The `fork` pseudo-keyword is used when "forking" a coroutine, i.e. splitting it into two (or more) copies. One use of `fork` is in a server, where a new coroutine is created to handle each client connection:
+
+
+
+ reenter (this)
+ {
+ do
+ {
+ socket_.reset(new tcp::socket(io_service_));
+ yield acceptor->async_accept(*socket_, *this);
+ fork server(*this)();
+ } while (is_parent());
+ ... client-specific handling follows ...
+ }
+
+
+
+
+The logical steps involved in a `fork` are:
+
+
+* `fork` saves the current state of the coroutine.
+
+* The statement creates a copy of the coroutine and either executes it immediately or schedules it for later execution.
+
+* The resume point is defined immediately following the semicolon.
+
+* For the "parent", control immediately continues from the next line.
+
+The functions `is_parent()` and `is_child()` can be used to differentiate between parent and child. You would use these functions to alter subsequent control flow.
+
+Note that `fork` doesn't do the actual forking by itself. It is the application's responsibility to create a clone of the coroutine and call it. The clone can be called immediately, as above, or scheduled for delayed execution using something like `io_service::post()`.
+
+
+[heading Alternate macro names]
+
+
+
+If preferred, an application can use macro names that follow a more typical naming convention, rather than the pseudo-keywords. These are:
+
+
+* `BOOST_ASIO_CORO_REENTER` instead of `reenter`
+
+* `BOOST_ASIO_CORO_YIELD` instead of `yield`
+
+* `BOOST_ASIO_CORO_FORK` instead of `fork`
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/coroutine.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[section:coroutine coroutine::coroutine]
+
+[indexterm2 coroutine..coroutine]
+Constructs a coroutine in its initial state.
+
+
+ coroutine();
+
+
+
+[endsect]
+
+
+
+[section:is_child coroutine::is_child]
+
+[indexterm2 is_child..coroutine]
+Returns true if the coroutine is the child of a fork.
+
+
+ bool is_child() const;
+
+
+
+[endsect]
+
+
+
+[section:is_complete coroutine::is_complete]
+
+[indexterm2 is_complete..coroutine]
+Returns true if the coroutine has reached its terminal state.
+
+
+ bool is_complete() const;
+
+
+
+[endsect]
+
+
+
+[section:is_parent coroutine::is_parent]
+
+[indexterm2 is_parent..coroutine]
+Returns true if the coroutine is the parent of a fork.
+
+
+ bool is_parent() const;
-[*Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -51757,6 +53216,11 @@ Default service implementation for a datagram socket.
]
[
+ [[link boost_asio.reference.datagram_socket_service.converting_move_construct [*converting_move_construct]]]
+ [Move-construct a new datagram socket implementation from another protocol type. ]
+ ]
+
+ [
[[link boost_asio.reference.datagram_socket_service.datagram_socket_service [*datagram_socket_service]]]
[Construct a new datagram socket service for the specified io_service. ]
]
@@ -51880,9 +53344,9 @@ Default service implementation for a datagram socket.
[heading Requirements]
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
+['Header: ][^boost/asio/datagram_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign datagram_socket_service::assign]
@@ -51911,7 +53375,7 @@ Start an asynchronous connect.
template<
typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
implementation_type & impl,
const endpoint_type & peer_endpoint,
ConnectHandler handler);
@@ -51931,7 +53395,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
implementation_type & impl,
const MutableBufferSequence & buffers,
socket_base::message_flags flags,
@@ -51952,7 +53416,7 @@ Start an asynchronous receive that will get the endpoint of the sender.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive_from(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive_from(
implementation_type & impl,
const MutableBufferSequence & buffers,
endpoint_type & sender_endpoint,
@@ -51974,7 +53438,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send(
implementation_type & impl,
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
@@ -51995,7 +53459,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send_to(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send_to(
implementation_type & impl,
const ConstBufferSequence & buffers,
const endpoint_type & destination,
@@ -52119,6 +53583,25 @@ Construct a new datagram socket implementation.
+[section:converting_move_construct datagram_socket_service::converting_move_construct]
+
+[indexterm2 converting_move_construct..datagram_socket_service]
+Move-construct a new datagram socket implementation from another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``>
+ void converting_move_construct(
+ implementation_type & impl,
+ typename datagram_socket_service< Protocol1 >::implementation_type & other_impl,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+
+
+
+[endsect]
+
+
+
[section:datagram_socket_service datagram_socket_service::datagram_socket_service]
[indexterm2 datagram_socket_service..datagram_socket_service]
@@ -52161,9 +53644,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
+['Header: ][^boost/asio/datagram_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -52232,9 +53715,9 @@ The type of a datagram socket.
[heading Requirements]
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
+['Header: ][^boost/asio/datagram_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -52366,9 +53849,9 @@ The native socket type.
[heading Requirements]
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
+['Header: ][^boost/asio/datagram_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -52441,9 +53924,9 @@ Sets the non-blocking mode of the native socket implementation.
[heading Requirements]
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
+['Header: ][^boost/asio/datagram_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -52531,9 +54014,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
+['Header: ][^boost/asio/datagram_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -52822,9 +54305,9 @@ Most applications will use the [link boost_asio.reference.deadline_timer `deadli
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Examples]
@@ -52910,9 +54393,9 @@ Changing the expiry time of a timer while there are pending asynchronous waits c
[heading Requirements]
-[*Header: ][^boost/asio/deadline_timer.hpp]
+['Header: ][^boost/asio/deadline_timer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53038,9 +54521,9 @@ Default service implementation for a timer.
[heading Requirements]
-[*Header: ][^boost/asio/deadline_timer_service.hpp]
+['Header: ][^boost/asio/deadline_timer_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:async_wait deadline_timer_service::async_wait]
@@ -53049,7 +54532,7 @@ Default service implementation for a timer.
template<
typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
- void async_wait(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_wait(
implementation_type & impl,
WaitHandler handler);
@@ -53148,9 +54631,9 @@ The duration type.
[heading Requirements]
-[*Header: ][^boost/asio/deadline_timer_service.hpp]
+['Header: ][^boost/asio/deadline_timer_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53308,9 +54791,9 @@ The implementation type of the deadline timer.
[heading Requirements]
-[*Header: ][^boost/asio/deadline_timer_service.hpp]
+['Header: ][^boost/asio/deadline_timer_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53329,9 +54812,9 @@ The time type.
[heading Requirements]
-[*Header: ][^boost/asio/deadline_timer_service.hpp]
+['Header: ][^boost/asio/deadline_timer_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53350,9 +54833,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/deadline_timer_service.hpp]
+['Header: ][^boost/asio/deadline_timer_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53385,9 +54868,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53421,9 +54904,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53643,9 +55126,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53661,9 +55144,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53679,9 +55162,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53697,9 +55180,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53715,9 +55198,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/error.hpp]
+['Header: ][^boost/asio/ssl/error.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -53733,9 +55216,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53767,9 +55250,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 error::make_error_code (1 of 5 overloads)]
@@ -53848,9 +55331,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53896,9 +55379,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53914,9 +55397,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53962,9 +55445,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -53980,9 +55463,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/error.hpp]
+['Header: ][^boost/asio/ssl/error.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -53998,9 +55481,9 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/error.hpp]
+['Header: ][^boost/asio/ssl/error.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -54016,15 +55499,4058 @@ The time traits type.
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+[section:generic__basic_endpoint generic::basic_endpoint]
+
+
+Describes an endpoint for any socket type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ class basic_endpoint
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.generic__basic_endpoint.data_type [*data_type]]]
+ [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.generic__basic_endpoint.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.basic_endpoint [*basic_endpoint]]]
+ [Default constructor.
+
+ Construct an endpoint from the specified socket address.
+
+ Construct an endpoint from the specific endpoint type.
+
+ Copy constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.capacity [*capacity]]]
+ [Get the capacity of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.data [*data]]]
+ [Get the underlying endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_eq_ [*operator=]]]
+ [Assign from another endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.protocol [*protocol]]]
+ [The protocol associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.resize [*resize]]]
+ [Set the underlying size of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.size [*size]]]
+ [Get the underlying size of the endpoint in the native type. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_not__eq_ [*operator!=]]]
+ [Compare two endpoints for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_lt_ [*operator<]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_lt__eq_ [*operator<=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_eq__eq_ [*operator==]]]
+ [Compare two endpoints for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_gt_ [*operator>]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_gt__eq_ [*operator>=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+]
+
+The [link boost_asio.reference.generic__basic_endpoint `generic::basic_endpoint`] class template describes an endpoint that may be associated with any socket type.
+
+
+[heading Remarks]
+
+The socket types sockaddr type must be able to fit into a `sockaddr_storage` structure.
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Unsafe.
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/basic_endpoint.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+[section:basic_endpoint generic::basic_endpoint::basic_endpoint]
+
+[indexterm2 basic_endpoint..generic::basic_endpoint]
+Default constructor.
+
+
+ ``[link boost_asio.reference.generic__basic_endpoint.basic_endpoint.overload1 basic_endpoint]``();
+ `` [''''&raquo;''' [link boost_asio.reference.generic__basic_endpoint.basic_endpoint.overload1 more...]]``
+
+
+Construct an endpoint from the specified socket address.
+
+
+ ``[link boost_asio.reference.generic__basic_endpoint.basic_endpoint.overload2 basic_endpoint]``(
+ const void * socket_address,
+ std::size_t socket_address_size,
+ int socket_protocol = 0);
+ `` [''''&raquo;''' [link boost_asio.reference.generic__basic_endpoint.basic_endpoint.overload2 more...]]``
+
+
+Construct an endpoint from the specific endpoint type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Endpoint Endpoint]``>
+ ``[link boost_asio.reference.generic__basic_endpoint.basic_endpoint.overload3 basic_endpoint]``(
+ const Endpoint & endpoint);
+ `` [''''&raquo;''' [link boost_asio.reference.generic__basic_endpoint.basic_endpoint.overload3 more...]]``
+
+
+Copy constructor.
+
+
+ ``[link boost_asio.reference.generic__basic_endpoint.basic_endpoint.overload4 basic_endpoint]``(
+ const basic_endpoint & other);
+ `` [''''&raquo;''' [link boost_asio.reference.generic__basic_endpoint.basic_endpoint.overload4 more...]]``
+
+
+[section:overload1 generic::basic_endpoint::basic_endpoint (1 of 4 overloads)]
+
+
+Default constructor.
+
+
+ basic_endpoint();
+
+
+
+[endsect]
+
+
+
+[section:overload2 generic::basic_endpoint::basic_endpoint (2 of 4 overloads)]
+
+
+Construct an endpoint from the specified socket address.
+
+
+ basic_endpoint(
+ const void * socket_address,
+ std::size_t socket_address_size,
+ int socket_protocol = 0);
+
+
+
+[endsect]
+
+
+
+[section:overload3 generic::basic_endpoint::basic_endpoint (3 of 4 overloads)]
+
+
+Construct an endpoint from the specific endpoint type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Endpoint Endpoint]``>
+ basic_endpoint(
+ const Endpoint & endpoint);
-[*Convenience header: ][^boost/asio.hpp]
[endsect]
+[section:overload4 generic::basic_endpoint::basic_endpoint (4 of 4 overloads)]
+
+
+Copy constructor.
+
+
+ basic_endpoint(
+ const basic_endpoint & other);
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:capacity generic::basic_endpoint::capacity]
+
+[indexterm2 capacity..generic::basic_endpoint]
+Get the capacity of the endpoint in the native type.
+
+
+ std::size_t capacity() const;
+
+
+
+[endsect]
+
+
+[section:data generic::basic_endpoint::data]
+
+[indexterm2 data..generic::basic_endpoint]
+Get the underlying endpoint in the native type.
+
+
+ data_type * ``[link boost_asio.reference.generic__basic_endpoint.data.overload1 data]``();
+ `` [''''&raquo;''' [link boost_asio.reference.generic__basic_endpoint.data.overload1 more...]]``
+
+ const data_type * ``[link boost_asio.reference.generic__basic_endpoint.data.overload2 data]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.generic__basic_endpoint.data.overload2 more...]]``
+
+
+[section:overload1 generic::basic_endpoint::data (1 of 2 overloads)]
+
+
+Get the underlying endpoint in the native type.
+
+
+ data_type * data();
+
+
+
+[endsect]
+
+
+
+[section:overload2 generic::basic_endpoint::data (2 of 2 overloads)]
+
+
+Get the underlying endpoint in the native type.
+
+
+ const data_type * data() const;
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:data_type generic::basic_endpoint::data_type]
+
+[indexterm2 data_type..generic::basic_endpoint]
+The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer.
+
+
+ typedef implementation_defined data_type;
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/basic_endpoint.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_not__eq_ generic::basic_endpoint::operator!=]
+
+[indexterm2 operator!=..generic::basic_endpoint]
+Compare two endpoints for inequality.
+
+
+ friend bool operator!=(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/basic_endpoint.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_lt_ generic::basic_endpoint::operator<]
+
+[indexterm2 operator<..generic::basic_endpoint]
+Compare endpoints for ordering.
+
+
+ friend bool operator<(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/basic_endpoint.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_lt__eq_ generic::basic_endpoint::operator<=]
+
+[indexterm2 operator<=..generic::basic_endpoint]
+Compare endpoints for ordering.
+
+
+ friend bool operator<=(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/basic_endpoint.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_eq_ generic::basic_endpoint::operator=]
+
+[indexterm2 operator=..generic::basic_endpoint]
+Assign from another endpoint.
+
+
+ basic_endpoint & operator=(
+ const basic_endpoint & other);
+
+
+
+[endsect]
+
+
+
+[section:operator_eq__eq_ generic::basic_endpoint::operator==]
+
+[indexterm2 operator==..generic::basic_endpoint]
+Compare two endpoints for equality.
+
+
+ friend bool operator==(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/basic_endpoint.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_gt_ generic::basic_endpoint::operator>]
+
+[indexterm2 operator>..generic::basic_endpoint]
+Compare endpoints for ordering.
+
+
+ friend bool operator>(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/basic_endpoint.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_gt__eq_ generic::basic_endpoint::operator>=]
+
+[indexterm2 operator>=..generic::basic_endpoint]
+Compare endpoints for ordering.
+
+
+ friend bool operator>=(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/basic_endpoint.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:protocol generic::basic_endpoint::protocol]
+
+[indexterm2 protocol..generic::basic_endpoint]
+The protocol associated with the endpoint.
+
+
+ protocol_type protocol() const;
+
+
+
+[endsect]
+
+
+
+[section:protocol_type generic::basic_endpoint::protocol_type]
+
+[indexterm2 protocol_type..generic::basic_endpoint]
+The protocol type associated with the endpoint.
+
+
+ typedef Protocol protocol_type;
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/basic_endpoint.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:resize generic::basic_endpoint::resize]
+
+[indexterm2 resize..generic::basic_endpoint]
+Set the underlying size of the endpoint in the native type.
+
+
+ void resize(
+ std::size_t new_size);
+
+
+
+[endsect]
+
+
+
+[section:size generic::basic_endpoint::size]
+
+[indexterm2 size..generic::basic_endpoint]
+Get the underlying size of the endpoint in the native type.
+
+
+ std::size_t size() const;
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:generic__datagram_protocol generic::datagram_protocol]
+
+
+Encapsulates the flags needed for a generic datagram-oriented socket.
+
+
+ class datagram_protocol
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.generic__datagram_protocol.endpoint [*endpoint]]]
+ [The type of an endpoint. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.generic__datagram_protocol.socket [*socket]]]
+ [The generic socket type. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__datagram_protocol.datagram_protocol [*datagram_protocol]]]
+ [Construct a protocol object for a specific address family and protocol.
+
+ Construct a generic protocol object from a specific protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__datagram_protocol.family [*family]]]
+ [Obtain an identifier for the protocol family. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__datagram_protocol.protocol [*protocol]]]
+ [Obtain an identifier for the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__datagram_protocol.type [*type]]]
+ [Obtain an identifier for the type of the protocol. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__datagram_protocol.operator_not__eq_ [*operator!=]]]
+ [Compare two protocols for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__datagram_protocol.operator_eq__eq_ [*operator==]]]
+ [Compare two protocols for equality. ]
+ ]
+
+]
+
+The [link boost_asio.reference.generic__datagram_protocol `generic::datagram_protocol`] class contains flags necessary for datagram-oriented sockets of any address family and protocol.
+
+
+[heading Examples]
+
+Constructing using a native address family and socket protocol:
+
+ datagram_protocol p(AF_INET, IPPROTO_UDP);
+
+
+Constructing from a specific protocol type:
+
+ datagram_protocol p(boost::asio::ip::udp::v4());
+
+
+
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Safe.
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/datagram_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+[section:datagram_protocol generic::datagram_protocol::datagram_protocol]
+
+[indexterm2 datagram_protocol..generic::datagram_protocol]
+Construct a protocol object for a specific address family and protocol.
+
+
+ ``[link boost_asio.reference.generic__datagram_protocol.datagram_protocol.overload1 datagram_protocol]``(
+ int address_family,
+ int socket_protocol);
+ `` [''''&raquo;''' [link boost_asio.reference.generic__datagram_protocol.datagram_protocol.overload1 more...]]``
+
+
+Construct a generic protocol object from a specific protocol.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ ``[link boost_asio.reference.generic__datagram_protocol.datagram_protocol.overload2 datagram_protocol]``(
+ const Protocol & source_protocol);
+ `` [''''&raquo;''' [link boost_asio.reference.generic__datagram_protocol.datagram_protocol.overload2 more...]]``
+
+
+[section:overload1 generic::datagram_protocol::datagram_protocol (1 of 2 overloads)]
+
+
+Construct a protocol object for a specific address family and protocol.
+
+
+ datagram_protocol(
+ int address_family,
+ int socket_protocol);
+
+
+
+[endsect]
+
+
+
+[section:overload2 generic::datagram_protocol::datagram_protocol (2 of 2 overloads)]
+
+
+Construct a generic protocol object from a specific protocol.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ datagram_protocol(
+ const Protocol & source_protocol);
+
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[@c][bad\_cast Thrown if the source protocol is not datagram-oriented. ]]
+
+]
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:endpoint generic::datagram_protocol::endpoint]
+
+[indexterm2 endpoint..generic::datagram_protocol]
+The type of an endpoint.
+
+
+ typedef basic_endpoint< datagram_protocol > endpoint;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.generic__basic_endpoint.data_type [*data_type]]]
+ [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.generic__basic_endpoint.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.basic_endpoint [*basic_endpoint]]]
+ [Default constructor.
+
+ Construct an endpoint from the specified socket address.
+
+ Construct an endpoint from the specific endpoint type.
+
+ Copy constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.capacity [*capacity]]]
+ [Get the capacity of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.data [*data]]]
+ [Get the underlying endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_eq_ [*operator=]]]
+ [Assign from another endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.protocol [*protocol]]]
+ [The protocol associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.resize [*resize]]]
+ [Set the underlying size of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.size [*size]]]
+ [Get the underlying size of the endpoint in the native type. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_not__eq_ [*operator!=]]]
+ [Compare two endpoints for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_lt_ [*operator<]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_lt__eq_ [*operator<=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_eq__eq_ [*operator==]]]
+ [Compare two endpoints for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_gt_ [*operator>]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_gt__eq_ [*operator>=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+]
+
+The [link boost_asio.reference.generic__basic_endpoint `generic::basic_endpoint`] class template describes an endpoint that may be associated with any socket type.
+
+
+[heading Remarks]
+
+The socket types sockaddr type must be able to fit into a `sockaddr_storage` structure.
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Unsafe.
+
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/datagram_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:family generic::datagram_protocol::family]
+
+[indexterm2 family..generic::datagram_protocol]
+Obtain an identifier for the protocol family.
+
+
+ int family() const;
+
+
+
+[endsect]
+
+
+
+[section:operator_not__eq_ generic::datagram_protocol::operator!=]
+
+[indexterm2 operator!=..generic::datagram_protocol]
+Compare two protocols for inequality.
+
+
+ friend bool operator!=(
+ const datagram_protocol & p1,
+ const datagram_protocol & p2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/datagram_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_eq__eq_ generic::datagram_protocol::operator==]
+
+[indexterm2 operator==..generic::datagram_protocol]
+Compare two protocols for equality.
+
+
+ friend bool operator==(
+ const datagram_protocol & p1,
+ const datagram_protocol & p2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/datagram_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:protocol generic::datagram_protocol::protocol]
+
+[indexterm2 protocol..generic::datagram_protocol]
+Obtain an identifier for the protocol.
+
+
+ int protocol() const;
+
+
+
+[endsect]
+
+
+
+[section:socket generic::datagram_protocol::socket]
+
+[indexterm2 socket..generic::datagram_protocol]
+The generic socket type.
+
+
+ typedef basic_datagram_socket< datagram_protocol > socket;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.broadcast [*broadcast]]]
+ [Socket option to permit sending of broadcast messages. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.debug [*debug]]]
+ [Socket option to enable socket-level debugging. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.do_not_route [*do_not_route]]]
+ [Socket option to prevent routing, use local interfaces only. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.enable_connection_aborted [*enable_connection_aborted]]]
+ [Socket option to report aborted connections on accept. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.keep_alive [*keep_alive]]]
+ [Socket option to send keep-alives. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.linger [*linger]]]
+ [Socket option to specify whether the socket lingers on close if unsent data is present. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_socket is always the lowest layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.message_flags [*message_flags]]]
+ [Bitmask type for flags that can be passed to send and receive operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.native_handle_type [*native_handle_type]]]
+ [The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.receive_buffer_size [*receive_buffer_size]]]
+ [Socket option for the receive buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.receive_low_watermark [*receive_low_watermark]]]
+ [Socket option for the receive low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.reuse_address [*reuse_address]]]
+ [Socket option to allow the socket to be bound to an address that is already in use. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.send_buffer_size [*send_buffer_size]]]
+ [Socket option for the send buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.send_low_watermark [*send_low_watermark]]]
+ [Socket option for the send low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.shutdown_type [*shutdown_type]]]
+ [Different ways a socket may be shutdown. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.assign [*assign]]]
+ [Assign an existing native socket to the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_receive [*async_receive]]]
+ [Start an asynchronous receive on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_receive_from [*async_receive_from]]]
+ [Start an asynchronous receive. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_send [*async_send]]]
+ [Start an asynchronous send on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_send_to [*async_send_to]]]
+ [Start an asynchronous send. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.available [*available]]]
+ [Determine the number of bytes available for reading. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.basic_datagram_socket [*basic_datagram_socket]]]
+ [Construct a basic_datagram_socket without opening it.
+
+ Construct and open a basic_datagram_socket.
+
+ Construct a basic_datagram_socket, opening it and binding it to the given local endpoint.
+
+ Construct a basic_datagram_socket on an existing native socket.
+
+ Move-construct a basic_datagram_socket from another.
+
+ Move-construct a basic_datagram_socket from a socket of another protocol type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.bind [*bind]]]
+ [Bind the socket to the given local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.close [*close]]]
+ [Close the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.connect [*connect]]]
+ [Connect the socket to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_option [*get_option]]]
+ [Get an option from the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
+
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.native_handle [*native_handle]]]
+ [Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
+
+ Sets the non-blocking mode of the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
+
+ Sets the non-blocking mode of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.open [*open]]]
+ [Open the socket using the specified protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.operator_eq_ [*operator=]]]
+ [Move-assign a basic_datagram_socket from another.
+
+ Move-assign a basic_datagram_socket from a socket of another protocol type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.receive [*receive]]]
+ [Receive some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.receive_from [*receive_from]]]
+ [Receive a datagram with the endpoint of the sender. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.send [*send]]]
+ [Send some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.send_to [*send_to]]]
+ [Send a datagram to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.set_option [*set_option]]]
+ [Set an option on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.max_connections [*max_connections]]]
+ [The maximum length of the queue of pending incoming connections. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_do_not_route [*message_do_not_route]]]
+ [Specify that the data should not be subject to routing. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_end_of_record [*message_end_of_record]]]
+ [Specifies that the data marks the end of a record. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_out_of_band [*message_out_of_band]]]
+ [Process out-of-band data. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_peek [*message_peek]]]
+ [Peek at incoming data without removing it from the input queue. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] class template provides asynchronous and blocking datagram-oriented socket functionality.
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Unsafe.
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/datagram_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:type generic::datagram_protocol::type]
+
+[indexterm2 type..generic::datagram_protocol]
+Obtain an identifier for the type of the protocol.
+
+
+ int type() const;
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:generic__raw_protocol generic::raw_protocol]
+
+
+Encapsulates the flags needed for a generic raw socket.
+
+
+ class raw_protocol
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.generic__raw_protocol.endpoint [*endpoint]]]
+ [The type of an endpoint. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.generic__raw_protocol.socket [*socket]]]
+ [The generic socket type. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__raw_protocol.family [*family]]]
+ [Obtain an identifier for the protocol family. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__raw_protocol.protocol [*protocol]]]
+ [Obtain an identifier for the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__raw_protocol.raw_protocol [*raw_protocol]]]
+ [Construct a protocol object for a specific address family and protocol.
+
+ Construct a generic protocol object from a specific protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__raw_protocol.type [*type]]]
+ [Obtain an identifier for the type of the protocol. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__raw_protocol.operator_not__eq_ [*operator!=]]]
+ [Compare two protocols for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__raw_protocol.operator_eq__eq_ [*operator==]]]
+ [Compare two protocols for equality. ]
+ ]
+
+]
+
+The [link boost_asio.reference.generic__raw_protocol `generic::raw_protocol`] class contains flags necessary for raw sockets of any address family and protocol.
+
+
+[heading Examples]
+
+Constructing using a native address family and socket protocol:
+
+ raw_protocol p(AF_INET, IPPROTO_ICMP);
+
+
+Constructing from a specific protocol type:
+
+ raw_protocol p(boost::asio::ip::icmp::v4());
+
+
+
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Safe.
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/raw_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[section:endpoint generic::raw_protocol::endpoint]
+
+[indexterm2 endpoint..generic::raw_protocol]
+The type of an endpoint.
+
+
+ typedef basic_endpoint< raw_protocol > endpoint;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.generic__basic_endpoint.data_type [*data_type]]]
+ [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.generic__basic_endpoint.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.basic_endpoint [*basic_endpoint]]]
+ [Default constructor.
+
+ Construct an endpoint from the specified socket address.
+
+ Construct an endpoint from the specific endpoint type.
+
+ Copy constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.capacity [*capacity]]]
+ [Get the capacity of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.data [*data]]]
+ [Get the underlying endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_eq_ [*operator=]]]
+ [Assign from another endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.protocol [*protocol]]]
+ [The protocol associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.resize [*resize]]]
+ [Set the underlying size of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.size [*size]]]
+ [Get the underlying size of the endpoint in the native type. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_not__eq_ [*operator!=]]]
+ [Compare two endpoints for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_lt_ [*operator<]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_lt__eq_ [*operator<=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_eq__eq_ [*operator==]]]
+ [Compare two endpoints for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_gt_ [*operator>]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_gt__eq_ [*operator>=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+]
+
+The [link boost_asio.reference.generic__basic_endpoint `generic::basic_endpoint`] class template describes an endpoint that may be associated with any socket type.
+
+
+[heading Remarks]
+
+The socket types sockaddr type must be able to fit into a `sockaddr_storage` structure.
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Unsafe.
+
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/raw_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:family generic::raw_protocol::family]
+
+[indexterm2 family..generic::raw_protocol]
+Obtain an identifier for the protocol family.
+
+
+ int family() const;
+
+
+
+[endsect]
+
+
+
+[section:operator_not__eq_ generic::raw_protocol::operator!=]
+
+[indexterm2 operator!=..generic::raw_protocol]
+Compare two protocols for inequality.
+
+
+ friend bool operator!=(
+ const raw_protocol & p1,
+ const raw_protocol & p2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/raw_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_eq__eq_ generic::raw_protocol::operator==]
+
+[indexterm2 operator==..generic::raw_protocol]
+Compare two protocols for equality.
+
+
+ friend bool operator==(
+ const raw_protocol & p1,
+ const raw_protocol & p2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/raw_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:protocol generic::raw_protocol::protocol]
+
+[indexterm2 protocol..generic::raw_protocol]
+Obtain an identifier for the protocol.
+
+
+ int protocol() const;
+
+
+
+[endsect]
+
+
+[section:raw_protocol generic::raw_protocol::raw_protocol]
+
+[indexterm2 raw_protocol..generic::raw_protocol]
+Construct a protocol object for a specific address family and protocol.
+
+
+ ``[link boost_asio.reference.generic__raw_protocol.raw_protocol.overload1 raw_protocol]``(
+ int address_family,
+ int socket_protocol);
+ `` [''''&raquo;''' [link boost_asio.reference.generic__raw_protocol.raw_protocol.overload1 more...]]``
+
+
+Construct a generic protocol object from a specific protocol.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ ``[link boost_asio.reference.generic__raw_protocol.raw_protocol.overload2 raw_protocol]``(
+ const Protocol & source_protocol);
+ `` [''''&raquo;''' [link boost_asio.reference.generic__raw_protocol.raw_protocol.overload2 more...]]``
+
+
+[section:overload1 generic::raw_protocol::raw_protocol (1 of 2 overloads)]
+
+
+Construct a protocol object for a specific address family and protocol.
+
+
+ raw_protocol(
+ int address_family,
+ int socket_protocol);
+
+
+
+[endsect]
+
+
+
+[section:overload2 generic::raw_protocol::raw_protocol (2 of 2 overloads)]
+
+
+Construct a generic protocol object from a specific protocol.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ raw_protocol(
+ const Protocol & source_protocol);
+
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[@c][bad\_cast Thrown if the source protocol is not raw-oriented. ]]
+
+]
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:socket generic::raw_protocol::socket]
+
+[indexterm2 socket..generic::raw_protocol]
+The generic socket type.
+
+
+ typedef basic_raw_socket< raw_protocol > socket;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.broadcast [*broadcast]]]
+ [Socket option to permit sending of broadcast messages. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.debug [*debug]]]
+ [Socket option to enable socket-level debugging. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.do_not_route [*do_not_route]]]
+ [Socket option to prevent routing, use local interfaces only. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.enable_connection_aborted [*enable_connection_aborted]]]
+ [Socket option to report aborted connections on accept. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.keep_alive [*keep_alive]]]
+ [Socket option to send keep-alives. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.linger [*linger]]]
+ [Socket option to specify whether the socket lingers on close if unsent data is present. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_socket is always the lowest layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.message_flags [*message_flags]]]
+ [Bitmask type for flags that can be passed to send and receive operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.native_handle_type [*native_handle_type]]]
+ [The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.receive_buffer_size [*receive_buffer_size]]]
+ [Socket option for the receive buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.receive_low_watermark [*receive_low_watermark]]]
+ [Socket option for the receive low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.reuse_address [*reuse_address]]]
+ [Socket option to allow the socket to be bound to an address that is already in use. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.send_buffer_size [*send_buffer_size]]]
+ [Socket option for the send buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.send_low_watermark [*send_low_watermark]]]
+ [Socket option for the send low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_raw_socket.shutdown_type [*shutdown_type]]]
+ [Different ways a socket may be shutdown. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.assign [*assign]]]
+ [Assign an existing native socket to the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.async_receive [*async_receive]]]
+ [Start an asynchronous receive on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.async_receive_from [*async_receive_from]]]
+ [Start an asynchronous receive. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.async_send [*async_send]]]
+ [Start an asynchronous send on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.async_send_to [*async_send_to]]]
+ [Start an asynchronous send. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.available [*available]]]
+ [Determine the number of bytes available for reading. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.basic_raw_socket [*basic_raw_socket]]]
+ [Construct a basic_raw_socket without opening it.
+
+ Construct and open a basic_raw_socket.
+
+ Construct a basic_raw_socket, opening it and binding it to the given local endpoint.
+
+ Construct a basic_raw_socket on an existing native socket.
+
+ Move-construct a basic_raw_socket from another.
+
+ Move-construct a basic_raw_socket from a socket of another protocol type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.bind [*bind]]]
+ [Bind the socket to the given local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.close [*close]]]
+ [Close the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.connect [*connect]]]
+ [Connect the socket to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.get_option [*get_option]]]
+ [Get an option from the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
+
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.native_handle [*native_handle]]]
+ [Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
+
+ Sets the non-blocking mode of the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
+
+ Sets the non-blocking mode of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.open [*open]]]
+ [Open the socket using the specified protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.operator_eq_ [*operator=]]]
+ [Move-assign a basic_raw_socket from another.
+
+ Move-assign a basic_raw_socket from a socket of another protocol type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.receive [*receive]]]
+ [Receive some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.receive_from [*receive_from]]]
+ [Receive raw data with the endpoint of the sender. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.send [*send]]]
+ [Send some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.send_to [*send_to]]]
+ [Send raw data to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.set_option [*set_option]]]
+ [Set an option on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.max_connections [*max_connections]]]
+ [The maximum length of the queue of pending incoming connections. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.message_do_not_route [*message_do_not_route]]]
+ [Specify that the data should not be subject to routing. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.message_end_of_record [*message_end_of_record]]]
+ [Specifies that the data marks the end of a record. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.message_out_of_band [*message_out_of_band]]]
+ [Process out-of-band data. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.message_peek [*message_peek]]]
+ [Peek at incoming data without removing it from the input queue. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_raw_socket.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] class template provides asynchronous and blocking raw-oriented socket functionality.
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Unsafe.
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/raw_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:type generic::raw_protocol::type]
+
+[indexterm2 type..generic::raw_protocol]
+Obtain an identifier for the type of the protocol.
+
+
+ int type() const;
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:generic__seq_packet_protocol generic::seq_packet_protocol]
+
+
+Encapsulates the flags needed for a generic sequenced packet socket.
+
+
+ class seq_packet_protocol
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.generic__seq_packet_protocol.endpoint [*endpoint]]]
+ [The type of an endpoint. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.generic__seq_packet_protocol.socket [*socket]]]
+ [The generic socket type. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__seq_packet_protocol.family [*family]]]
+ [Obtain an identifier for the protocol family. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__seq_packet_protocol.protocol [*protocol]]]
+ [Obtain an identifier for the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__seq_packet_protocol.seq_packet_protocol [*seq_packet_protocol]]]
+ [Construct a protocol object for a specific address family and protocol.
+
+ Construct a generic protocol object from a specific protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__seq_packet_protocol.type [*type]]]
+ [Obtain an identifier for the type of the protocol. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__seq_packet_protocol.operator_not__eq_ [*operator!=]]]
+ [Compare two protocols for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__seq_packet_protocol.operator_eq__eq_ [*operator==]]]
+ [Compare two protocols for equality. ]
+ ]
+
+]
+
+The [link boost_asio.reference.generic__seq_packet_protocol `generic::seq_packet_protocol`] class contains flags necessary for seq\_packet-oriented sockets of any address family and protocol.
+
+
+[heading Examples]
+
+Constructing using a native address family and socket protocol:
+
+ seq_packet_protocol p(AF_INET, IPPROTO_SCTP);
+
+
+
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Safe.
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/seq_packet_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[section:endpoint generic::seq_packet_protocol::endpoint]
+
+[indexterm2 endpoint..generic::seq_packet_protocol]
+The type of an endpoint.
+
+
+ typedef basic_endpoint< seq_packet_protocol > endpoint;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.generic__basic_endpoint.data_type [*data_type]]]
+ [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.generic__basic_endpoint.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.basic_endpoint [*basic_endpoint]]]
+ [Default constructor.
+
+ Construct an endpoint from the specified socket address.
+
+ Construct an endpoint from the specific endpoint type.
+
+ Copy constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.capacity [*capacity]]]
+ [Get the capacity of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.data [*data]]]
+ [Get the underlying endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_eq_ [*operator=]]]
+ [Assign from another endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.protocol [*protocol]]]
+ [The protocol associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.resize [*resize]]]
+ [Set the underlying size of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.size [*size]]]
+ [Get the underlying size of the endpoint in the native type. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_not__eq_ [*operator!=]]]
+ [Compare two endpoints for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_lt_ [*operator<]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_lt__eq_ [*operator<=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_eq__eq_ [*operator==]]]
+ [Compare two endpoints for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_gt_ [*operator>]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_gt__eq_ [*operator>=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+]
+
+The [link boost_asio.reference.generic__basic_endpoint `generic::basic_endpoint`] class template describes an endpoint that may be associated with any socket type.
+
+
+[heading Remarks]
+
+The socket types sockaddr type must be able to fit into a `sockaddr_storage` structure.
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Unsafe.
+
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/seq_packet_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:family generic::seq_packet_protocol::family]
+
+[indexterm2 family..generic::seq_packet_protocol]
+Obtain an identifier for the protocol family.
+
+
+ int family() const;
+
+
+
+[endsect]
+
+
+
+[section:operator_not__eq_ generic::seq_packet_protocol::operator!=]
+
+[indexterm2 operator!=..generic::seq_packet_protocol]
+Compare two protocols for inequality.
+
+
+ friend bool operator!=(
+ const seq_packet_protocol & p1,
+ const seq_packet_protocol & p2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/seq_packet_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_eq__eq_ generic::seq_packet_protocol::operator==]
+
+[indexterm2 operator==..generic::seq_packet_protocol]
+Compare two protocols for equality.
+
+
+ friend bool operator==(
+ const seq_packet_protocol & p1,
+ const seq_packet_protocol & p2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/seq_packet_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:protocol generic::seq_packet_protocol::protocol]
+
+[indexterm2 protocol..generic::seq_packet_protocol]
+Obtain an identifier for the protocol.
+
+
+ int protocol() const;
+
+
+
+[endsect]
+
+
+[section:seq_packet_protocol generic::seq_packet_protocol::seq_packet_protocol]
+
+[indexterm2 seq_packet_protocol..generic::seq_packet_protocol]
+Construct a protocol object for a specific address family and protocol.
+
+
+ ``[link boost_asio.reference.generic__seq_packet_protocol.seq_packet_protocol.overload1 seq_packet_protocol]``(
+ int address_family,
+ int socket_protocol);
+ `` [''''&raquo;''' [link boost_asio.reference.generic__seq_packet_protocol.seq_packet_protocol.overload1 more...]]``
+
+
+Construct a generic protocol object from a specific protocol.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ ``[link boost_asio.reference.generic__seq_packet_protocol.seq_packet_protocol.overload2 seq_packet_protocol]``(
+ const Protocol & source_protocol);
+ `` [''''&raquo;''' [link boost_asio.reference.generic__seq_packet_protocol.seq_packet_protocol.overload2 more...]]``
+
+
+[section:overload1 generic::seq_packet_protocol::seq_packet_protocol (1 of 2 overloads)]
+
+
+Construct a protocol object for a specific address family and protocol.
+
+
+ seq_packet_protocol(
+ int address_family,
+ int socket_protocol);
+
+
+
+[endsect]
+
+
+
+[section:overload2 generic::seq_packet_protocol::seq_packet_protocol (2 of 2 overloads)]
+
+
+Construct a generic protocol object from a specific protocol.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ seq_packet_protocol(
+ const Protocol & source_protocol);
+
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[@c][bad\_cast Thrown if the source protocol is not based around sequenced packets. ]]
+
+]
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:socket generic::seq_packet_protocol::socket]
+
+[indexterm2 socket..generic::seq_packet_protocol]
+The generic socket type.
+
+
+ typedef basic_seq_packet_socket< seq_packet_protocol > socket;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.broadcast [*broadcast]]]
+ [Socket option to permit sending of broadcast messages. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.debug [*debug]]]
+ [Socket option to enable socket-level debugging. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.do_not_route [*do_not_route]]]
+ [Socket option to prevent routing, use local interfaces only. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.enable_connection_aborted [*enable_connection_aborted]]]
+ [Socket option to report aborted connections on accept. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.keep_alive [*keep_alive]]]
+ [Socket option to send keep-alives. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.linger [*linger]]]
+ [Socket option to specify whether the socket lingers on close if unsent data is present. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_socket is always the lowest layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.message_flags [*message_flags]]]
+ [Bitmask type for flags that can be passed to send and receive operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.native_handle_type [*native_handle_type]]]
+ [The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.receive_buffer_size [*receive_buffer_size]]]
+ [Socket option for the receive buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.receive_low_watermark [*receive_low_watermark]]]
+ [Socket option for the receive low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.reuse_address [*reuse_address]]]
+ [Socket option to allow the socket to be bound to an address that is already in use. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.send_buffer_size [*send_buffer_size]]]
+ [Socket option for the send buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.send_low_watermark [*send_low_watermark]]]
+ [Socket option for the send low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_seq_packet_socket.shutdown_type [*shutdown_type]]]
+ [Different ways a socket may be shutdown. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.assign [*assign]]]
+ [Assign an existing native socket to the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.async_receive [*async_receive]]]
+ [Start an asynchronous receive. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.async_send [*async_send]]]
+ [Start an asynchronous send. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.available [*available]]]
+ [Determine the number of bytes available for reading. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.basic_seq_packet_socket [*basic_seq_packet_socket]]]
+ [Construct a basic_seq_packet_socket without opening it.
+
+ Construct and open a basic_seq_packet_socket.
+
+ Construct a basic_seq_packet_socket, opening it and binding it to the given local endpoint.
+
+ Construct a basic_seq_packet_socket on an existing native socket.
+
+ Move-construct a basic_seq_packet_socket from another.
+
+ Move-construct a basic_seq_packet_socket from a socket of another protocol type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.bind [*bind]]]
+ [Bind the socket to the given local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.close [*close]]]
+ [Close the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.connect [*connect]]]
+ [Connect the socket to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.get_option [*get_option]]]
+ [Get an option from the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
+
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.native_handle [*native_handle]]]
+ [Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
+
+ Sets the non-blocking mode of the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
+
+ Sets the non-blocking mode of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.open [*open]]]
+ [Open the socket using the specified protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.operator_eq_ [*operator=]]]
+ [Move-assign a basic_seq_packet_socket from another.
+
+ Move-assign a basic_seq_packet_socket from a socket of another protocol type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.receive [*receive]]]
+ [Receive some data on the socket.
+
+ Receive some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.send [*send]]]
+ [Send some data on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.set_option [*set_option]]]
+ [Set an option on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.max_connections [*max_connections]]]
+ [The maximum length of the queue of pending incoming connections. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.message_do_not_route [*message_do_not_route]]]
+ [Specify that the data should not be subject to routing. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.message_end_of_record [*message_end_of_record]]]
+ [Specifies that the data marks the end of a record. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.message_out_of_band [*message_out_of_band]]]
+ [Process out-of-band data. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.message_peek [*message_peek]]]
+ [Peek at incoming data without removing it from the input queue. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_seq_packet_socket.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.basic_seq_packet_socket `basic_seq_packet_socket`] class template provides asynchronous and blocking sequenced packet socket functionality.
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Unsafe.
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/seq_packet_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:type generic::seq_packet_protocol::type]
+
+[indexterm2 type..generic::seq_packet_protocol]
+Obtain an identifier for the type of the protocol.
+
+
+ int type() const;
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:generic__stream_protocol generic::stream_protocol]
+
+
+Encapsulates the flags needed for a generic stream-oriented socket.
+
+
+ class stream_protocol
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.generic__stream_protocol.endpoint [*endpoint]]]
+ [The type of an endpoint. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.generic__stream_protocol.iostream [*iostream]]]
+ [The generic socket iostream type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.generic__stream_protocol.socket [*socket]]]
+ [The generic socket type. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__stream_protocol.family [*family]]]
+ [Obtain an identifier for the protocol family. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__stream_protocol.protocol [*protocol]]]
+ [Obtain an identifier for the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__stream_protocol.stream_protocol [*stream_protocol]]]
+ [Construct a protocol object for a specific address family and protocol.
+
+ Construct a generic protocol object from a specific protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__stream_protocol.type [*type]]]
+ [Obtain an identifier for the type of the protocol. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__stream_protocol.operator_not__eq_ [*operator!=]]]
+ [Compare two protocols for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__stream_protocol.operator_eq__eq_ [*operator==]]]
+ [Compare two protocols for equality. ]
+ ]
+
+]
+
+The [link boost_asio.reference.generic__stream_protocol `generic::stream_protocol`] class contains flags necessary for stream-oriented sockets of any address family and protocol.
+
+
+[heading Examples]
+
+Constructing using a native address family and socket protocol:
+
+ stream_protocol p(AF_INET, IPPROTO_TCP);
+
+
+Constructing from a specific protocol type:
+
+ stream_protocol p(boost::asio::ip::tcp::v4());
+
+
+
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Safe.
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/stream_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[section:endpoint generic::stream_protocol::endpoint]
+
+[indexterm2 endpoint..generic::stream_protocol]
+The type of an endpoint.
+
+
+ typedef basic_endpoint< stream_protocol > endpoint;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.generic__basic_endpoint.data_type [*data_type]]]
+ [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.generic__basic_endpoint.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.basic_endpoint [*basic_endpoint]]]
+ [Default constructor.
+
+ Construct an endpoint from the specified socket address.
+
+ Construct an endpoint from the specific endpoint type.
+
+ Copy constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.capacity [*capacity]]]
+ [Get the capacity of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.data [*data]]]
+ [Get the underlying endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_eq_ [*operator=]]]
+ [Assign from another endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.protocol [*protocol]]]
+ [The protocol associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.resize [*resize]]]
+ [Set the underlying size of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.size [*size]]]
+ [Get the underlying size of the endpoint in the native type. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_not__eq_ [*operator!=]]]
+ [Compare two endpoints for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_lt_ [*operator<]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_lt__eq_ [*operator<=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_eq__eq_ [*operator==]]]
+ [Compare two endpoints for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_gt_ [*operator>]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.generic__basic_endpoint.operator_gt__eq_ [*operator>=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+]
+
+The [link boost_asio.reference.generic__basic_endpoint `generic::basic_endpoint`] class template describes an endpoint that may be associated with any socket type.
+
+
+[heading Remarks]
+
+The socket types sockaddr type must be able to fit into a `sockaddr_storage` structure.
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Unsafe.
+
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/stream_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:family generic::stream_protocol::family]
+
+[indexterm2 family..generic::stream_protocol]
+Obtain an identifier for the protocol family.
+
+
+ int family() const;
+
+
+
+[endsect]
+
+
+
+[section:iostream generic::stream_protocol::iostream]
+
+[indexterm2 iostream..generic::stream_protocol]
+The generic socket iostream type.
+
+
+ typedef basic_socket_iostream< stream_protocol > iostream;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_iostream.duration_type [*duration_type]]]
+ [The duration type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_iostream.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_iostream.time_type [*time_type]]]
+ [The time type. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.basic_socket_iostream [*basic_socket_iostream]]]
+ [Construct a basic_socket_iostream without establishing a connection.
+
+ Establish a connection to an endpoint corresponding to a resolver query. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.close [*close]]]
+ [Close the connection. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.connect [*connect]]]
+ [Establish a connection to an endpoint corresponding to a resolver query. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.error [*error]]]
+ [Get the last error associated with the stream. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.expires_at [*expires_at]]]
+ [Get the stream's expiry time as an absolute time.
+
+ Set the stream's expiry time as an absolute time. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.expires_from_now [*expires_from_now]]]
+ [Get the timer's expiry time relative to now.
+
+ Set the stream's expiry time relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.rdbuf [*rdbuf]]]
+ [Return a pointer to the underlying streambuf. ]
+ ]
+
+]
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/stream_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_not__eq_ generic::stream_protocol::operator!=]
+
+[indexterm2 operator!=..generic::stream_protocol]
+Compare two protocols for inequality.
+
+
+ friend bool operator!=(
+ const stream_protocol & p1,
+ const stream_protocol & p2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/stream_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_eq__eq_ generic::stream_protocol::operator==]
+
+[indexterm2 operator==..generic::stream_protocol]
+Compare two protocols for equality.
+
+
+ friend bool operator==(
+ const stream_protocol & p1,
+ const stream_protocol & p2);
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/stream_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:protocol generic::stream_protocol::protocol]
+
+[indexterm2 protocol..generic::stream_protocol]
+Obtain an identifier for the protocol.
+
+
+ int protocol() const;
+
+
+
+[endsect]
+
+
+
+[section:socket generic::stream_protocol::socket]
+
+[indexterm2 socket..generic::stream_protocol]
+The generic socket type.
+
+
+ typedef basic_stream_socket< stream_protocol > socket;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.broadcast [*broadcast]]]
+ [Socket option to permit sending of broadcast messages. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.debug [*debug]]]
+ [Socket option to enable socket-level debugging. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.do_not_route [*do_not_route]]]
+ [Socket option to prevent routing, use local interfaces only. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.enable_connection_aborted [*enable_connection_aborted]]]
+ [Socket option to report aborted connections on accept. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.keep_alive [*keep_alive]]]
+ [Socket option to send keep-alives. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.linger [*linger]]]
+ [Socket option to specify whether the socket lingers on close if unsent data is present. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_socket is always the lowest layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.message_flags [*message_flags]]]
+ [Bitmask type for flags that can be passed to send and receive operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.native_handle_type [*native_handle_type]]]
+ [The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.receive_buffer_size [*receive_buffer_size]]]
+ [Socket option for the receive buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.receive_low_watermark [*receive_low_watermark]]]
+ [Socket option for the receive low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.reuse_address [*reuse_address]]]
+ [Socket option to allow the socket to be bound to an address that is already in use. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.send_buffer_size [*send_buffer_size]]]
+ [Socket option for the send buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.send_low_watermark [*send_low_watermark]]]
+ [Socket option for the send low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.shutdown_type [*shutdown_type]]]
+ [Different ways a socket may be shutdown. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.assign [*assign]]]
+ [Assign an existing native socket to the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_read_some [*async_read_some]]]
+ [Start an asynchronous read. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_receive [*async_receive]]]
+ [Start an asynchronous receive. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_send [*async_send]]]
+ [Start an asynchronous send. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_write_some [*async_write_some]]]
+ [Start an asynchronous write. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.available [*available]]]
+ [Determine the number of bytes available for reading. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.basic_stream_socket [*basic_stream_socket]]]
+ [Construct a basic_stream_socket without opening it.
+
+ Construct and open a basic_stream_socket.
+
+ Construct a basic_stream_socket, opening it and binding it to the given local endpoint.
+
+ Construct a basic_stream_socket on an existing native socket.
+
+ Move-construct a basic_stream_socket from another.
+
+ Move-construct a basic_stream_socket from a socket of another protocol type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.bind [*bind]]]
+ [Bind the socket to the given local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.close [*close]]]
+ [Close the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.connect [*connect]]]
+ [Connect the socket to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_option [*get_option]]]
+ [Get an option from the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
+
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.native_handle [*native_handle]]]
+ [Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
+
+ Sets the non-blocking mode of the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
+
+ Sets the non-blocking mode of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.open [*open]]]
+ [Open the socket using the specified protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.operator_eq_ [*operator=]]]
+ [Move-assign a basic_stream_socket from another.
+
+ Move-assign a basic_stream_socket from a socket of another protocol type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.read_some [*read_some]]]
+ [Read some data from the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.receive [*receive]]]
+ [Receive some data on the socket.
+
+ Receive some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.send [*send]]]
+ [Send some data on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.set_option [*set_option]]]
+ [Set an option on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.write_some [*write_some]]]
+ [Write some data to the socket. ]
+ ]
+
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.max_connections [*max_connections]]]
+ [The maximum length of the queue of pending incoming connections. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_do_not_route [*message_do_not_route]]]
+ [Specify that the data should not be subject to routing. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_end_of_record [*message_end_of_record]]]
+ [Specifies that the data marks the end of a record. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_out_of_band [*message_out_of_band]]]
+ [Process out-of-band data. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_peek [*message_peek]]]
+ [Peek at incoming data without removing it from the input queue. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class template provides asynchronous and blocking stream-oriented socket functionality.
+
+
+[heading Thread Safety]
+
+['Distinct] ['objects:] Safe.
+
+['Shared] ['objects:] Unsafe.
+
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/generic/stream_protocol.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+[section:stream_protocol generic::stream_protocol::stream_protocol]
+
+[indexterm2 stream_protocol..generic::stream_protocol]
+Construct a protocol object for a specific address family and protocol.
+
+
+ ``[link boost_asio.reference.generic__stream_protocol.stream_protocol.overload1 stream_protocol]``(
+ int address_family,
+ int socket_protocol);
+ `` [''''&raquo;''' [link boost_asio.reference.generic__stream_protocol.stream_protocol.overload1 more...]]``
+
+
+Construct a generic protocol object from a specific protocol.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ ``[link boost_asio.reference.generic__stream_protocol.stream_protocol.overload2 stream_protocol]``(
+ const Protocol & source_protocol);
+ `` [''''&raquo;''' [link boost_asio.reference.generic__stream_protocol.stream_protocol.overload2 more...]]``
+
+
+[section:overload1 generic::stream_protocol::stream_protocol (1 of 2 overloads)]
+
+
+Construct a protocol object for a specific address family and protocol.
+
+
+ stream_protocol(
+ int address_family,
+ int socket_protocol);
+
+
+
+[endsect]
+
+
+
+[section:overload2 generic::stream_protocol::stream_protocol (2 of 2 overloads)]
+
+
+Construct a generic protocol object from a specific protocol.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ stream_protocol(
+ const Protocol & source_protocol);
+
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[@c][bad\_cast Thrown if the source protocol is not stream-oriented. ]]
+
+]
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:type generic::stream_protocol::type]
+
+[indexterm2 type..generic::stream_protocol]
+Obtain an identifier for the type of the protocol.
+
+
+ int type() const;
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:handler_type handler_type]
+
+
+Default handler type traits provided for all handlers.
+
+
+ template<
+ typename ``[link boost_asio.reference.Handler Handler]``,
+ typename Signature>
+ struct handler_type
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.handler_type.type [*type]]]
+ [The handler type for the specific signature. ]
+
+ ]
+
+]
+
+The [link boost_asio.reference.handler_type `handler_type`] traits class is used for determining the concrete handler type to be used for an asynchronous operation. It allows the handler type to be determined at the point where the specific completion handler signature is known.
+
+This template may be specialised for user-defined handler types.
+
+[heading Requirements]
+
+['Header: ][^boost/asio/handler_type.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[section:type handler_type::type]
+
+[indexterm2 type..handler_type]
+The handler type for the specific signature.
+
+
+ typedef Handler type;
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/handler_type.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[endsect]
+
+
[section:has_service has_service]
[indexterm1 has_service]
@@ -54056,9 +59582,9 @@ A boolean indicating whether the [link boost_asio.reference.io_service `io_servi
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -54212,7 +59738,7 @@ The [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] clas
A waitable timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
-Most applications will use the boost::asio::waitable\_timer typedef.
+Most applications will use one of the [link boost_asio.reference.steady_timer `steady_timer`], [link boost_asio.reference.system_timer `system_timer`] or [link boost_asio.reference.high_resolution_timer `high_resolution_timer`] typedefs.
[heading Remarks]
@@ -54222,20 +59748,20 @@ This waitable timer functionality is for use with the C++11 standard library's `
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Examples]
-Performing a blocking wait:
+Performing a blocking wait (C++11):
// Construct a timer without setting an expiry time.
- boost::asio::waitable_timer timer(io_service);
+ boost::asio::steady_timer timer(io_service);
// Set an expiry time relative to now.
- timer.expires_from_now(boost::posix_time::seconds(5));
+ timer.expires_from_now(std::chrono::seconds(5));
// Wait for the timer to expire.
timer.wait();
@@ -54244,7 +59770,7 @@ Performing a blocking wait:
-Performing an asynchronous wait:
+Performing an asynchronous wait (C++11):
void handler(const boost::system::error_code& error)
{
@@ -54257,8 +59783,8 @@ Performing an asynchronous wait:
...
// Construct a timer with an absolute expiry time.
- boost::asio::waitable_timer timer(io_service,
- boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
+ boost::asio::steady_timer timer(io_service,
+ std::chrono::steady_clock::now() + std::chrono::seconds(60));
// Start an asynchronous wait.
timer.async_wait(handler);
@@ -54267,7 +59793,7 @@ Performing an asynchronous wait:
-[heading Changing an active waitable_timer's expiry time]
+[heading Changing an active waitable timer's expiry time]
@@ -54317,9 +59843,9 @@ This typedef uses the C++11 `<chrono>` standard library facility, if available.
[heading Requirements]
-[*Header: ][^boost/asio/high_resolution_timer.hpp]
+['Header: ][^boost/asio/high_resolution_timer.hpp]
-[*Convenience header: ]None
+['Convenience header: ]None
[endsect]
@@ -54347,9 +59873,9 @@ Exception thrown when trying to add a service object to an [link boost_asio.refe
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:invalid_service_owner invalid_service_owner::invalid_service_owner]
@@ -54525,9 +60051,9 @@ The [link boost_asio.reference.io_service `io_service`] class also includes faci
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Safe, with the specific exceptions of the `reset()` and `notify_fork()` functions. Calling `reset()` while there are unfinished `run()`, `run_one()`, `poll()` or `poll_one()` calls results in undefined behaviour. The `notify_fork()` function should not be called while any [link boost_asio.reference.io_service `io_service`] function, or any function on an I/O object that is associated with the [link boost_asio.reference.io_service `io_service`], is being called in another thread.
+['Shared] ['objects:] Safe, with the specific exceptions of the `reset()` and `notify_fork()` functions. Calling `reset()` while there are unfinished `run()`, `run_one()`, `poll()` or `poll_one()` calls results in undefined behaviour. The `notify_fork()` function should not be called while any [link boost_asio.reference.io_service `io_service`] function, or any function on an I/O object that is associated with the [link boost_asio.reference.io_service `io_service`], is being called in another thread.
@@ -54544,7 +60070,7 @@ Synchronous operations on I/O objects implicitly run the [link boost_asio.refere
If an exception is thrown from a handler, the exception is allowed to propagate through the throwing thread's invocation of `run()`, `run_one()`, `poll()` or `poll_one()`. No other threads that are calling any of these functions are affected. It is then the responsibility of the application to catch the exception.
-After the exception has been caught, the `run()`, `run_one()`, `poll()` or `poll_one()` call may be restarted [*without] the need for an intervening call to `reset()`. This allows the thread to rejoin the [link boost_asio.reference.io_service `io_service`] object's thread pool without impacting any other threads in the pool.
+After the exception has been caught, the `run()`, `run_one()`, `poll()` or `poll_one()` call may be restarted ['without] the need for an intervening call to `reset()`. This allows the thread to rejoin the [link boost_asio.reference.io_service `io_service`] object's thread pool without impacting any other threads in the pool.
For example:
@@ -54620,9 +60146,9 @@ All I/O service implementations have [link boost_asio.reference.io_service__serv
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:add_service io_service::add_service]
@@ -54672,9 +60198,9 @@ This function is used to add a service to the [link boost_asio.reference.io_serv
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -54689,7 +60215,7 @@ Request the [link boost_asio.reference.io_service `io_service`] to invoke the gi
template<
typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
- void dispatch(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` dispatch(
CompletionHandler handler);
@@ -54800,9 +60326,9 @@ A boolean indicating whether the [link boost_asio.reference.io_service `io_servi
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -55105,7 +60631,7 @@ Request the [link boost_asio.reference.io_service `io_service`] to invoke the gi
template<
typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
- void post(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` post(
CompletionHandler handler);
@@ -55409,9 +60935,9 @@ The service interface implementing the specified service type. Ownership of the
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -55541,9 +61067,9 @@ Class used to uniquely identify a service.
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:id io_service::id::id]
@@ -55617,9 +61143,9 @@ Base class for all [link boost_asio.reference.io_service `io_service`] services.
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:get_io_service io_service::service::get_io_service]
@@ -55739,6 +61265,11 @@ Provides serialised handler execution.
]
[
+ [[link boost_asio.reference.io_service__strand.running_in_this_thread [*running_in_this_thread]]]
+ [Determine whether the strand is running in the current thread. ]
+ ]
+
+ [
[[link boost_asio.reference.io_service__strand.strand [*strand]]]
[Constructor. ]
]
@@ -55802,20 +61333,25 @@ Note that in the following case:
the completion of the first async operation will perform `s.dispatch(a)`, and the second will perform `s.dispatch(b)`, but the order in which those are performed is unspecified. That is, you cannot state whether one happens-before the other. Therefore none of the above conditions are met and no ordering guarantee is made.
+[heading Remarks]
+
+The implementation makes no guarantee that handlers posted or dispatched through different `strand` objects will be invoked concurrently.
+
+
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Safe.
+['Shared] ['objects:] Safe.
[heading Requirements]
-[*Header: ][^boost/asio/strand.hpp]
+['Header: ][^boost/asio/strand.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:dispatch io_service::strand::dispatch]
@@ -55826,7 +61362,7 @@ Request the strand to invoke the given handler.
template<
typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
- void dispatch(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` dispatch(
CompletionHandler handler);
@@ -55888,7 +61424,7 @@ Request the strand to invoke the given handler and return immediately.
template<
typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
- void post(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` post(
CompletionHandler handler);
@@ -55917,6 +61453,27 @@ The strand object guarantees that handlers posted or dispatched through the stra
+[section:running_in_this_thread io_service::strand::running_in_this_thread]
+
+[indexterm2 running_in_this_thread..io_service::strand]
+Determine whether the strand is running in the current thread.
+
+
+ bool running_in_this_thread() const;
+
+
+
+[heading Return Value]
+
+`true` if the current thread is executing a handler that was submitted to the strand using `post()`, `dispatch()` or `wrap()`. Otherwise returns `false`.
+
+
+
+
+[endsect]
+
+
+
[section:strand io_service::strand::strand]
[indexterm2 strand..io_service::strand]
@@ -56064,9 +61621,9 @@ The work class is copy-constructible so that it may be used as a data member in
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:get_io_service io_service::work::get_io_service]
@@ -56287,17 +61844,17 @@ The [link boost_asio.reference.ip__address `ip::address`] class provides the abi
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address.hpp]
+['Header: ][^boost/asio/ip/address.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:address ip::address::address]
@@ -56565,9 +62122,9 @@ Compare two addresses for inequality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address.hpp]
+['Header: ][^boost/asio/ip/address.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -56587,9 +62144,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address.hpp]
+['Header: ][^boost/asio/ip/address.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -56649,9 +62206,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address.hpp]
+['Header: ][^boost/asio/ip/address.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -56744,9 +62301,9 @@ Compare two addresses for equality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address.hpp]
+['Header: ][^boost/asio/ip/address.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -56766,9 +62323,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address.hpp]
+['Header: ][^boost/asio/ip/address.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -56788,9 +62345,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address.hpp]
+['Header: ][^boost/asio/ip/address.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -57039,17 +62596,17 @@ The [link boost_asio.reference.ip__address_v4 `ip::address_v4`] class provides t
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v4.hpp]
+['Header: ][^boost/asio/ip/address_v4.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:address_v4 ip::address_v4::address_v4]
@@ -57229,9 +62786,9 @@ This type is defined in terms of the C++0x template `std::array` when it is avai
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v4.hpp]
+['Header: ][^boost/asio/ip/address_v4.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -57452,9 +63009,9 @@ Compare two addresses for inequality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v4.hpp]
+['Header: ][^boost/asio/ip/address_v4.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -57474,9 +63031,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v4.hpp]
+['Header: ][^boost/asio/ip/address_v4.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -57536,9 +63093,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v4.hpp]
+['Header: ][^boost/asio/ip/address_v4.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -57573,9 +63130,9 @@ Compare two addresses for equality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v4.hpp]
+['Header: ][^boost/asio/ip/address_v4.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -57595,9 +63152,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v4.hpp]
+['Header: ][^boost/asio/ip/address_v4.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -57617,9 +63174,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v4.hpp]
+['Header: ][^boost/asio/ip/address_v4.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -57899,17 +63456,17 @@ The [link boost_asio.reference.ip__address_v6 `ip::address_v6`] class provides t
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+['Header: ][^boost/asio/ip/address_v6.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:address_v6 ip::address_v6::address_v6]
@@ -58018,9 +63575,9 @@ This type is defined in terms of the C++0x template `std::array` when it is avai
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+['Header: ][^boost/asio/ip/address_v6.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -58310,9 +63867,9 @@ Compare two addresses for inequality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+['Header: ][^boost/asio/ip/address_v6.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -58332,9 +63889,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+['Header: ][^boost/asio/ip/address_v6.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -58394,9 +63951,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+['Header: ][^boost/asio/ip/address_v6.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -58431,9 +63988,9 @@ Compare two addresses for equality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+['Header: ][^boost/asio/ip/address_v6.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -58453,9 +64010,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+['Header: ][^boost/asio/ip/address_v6.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -58475,9 +64032,9 @@ Compare addresses for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+['Header: ][^boost/asio/ip/address_v6.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -58780,18 +64337,18 @@ The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class te
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+['Header: ][^boost/asio/ip/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:address ip::basic_endpoint::address]
@@ -59025,9 +64582,9 @@ The type of the endpoint structure. This type is dependent on the underlying imp
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+['Header: ][^boost/asio/ip/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -59047,9 +64604,9 @@ Compare two endpoints for inequality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+['Header: ][^boost/asio/ip/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -59069,9 +64626,9 @@ Compare endpoints for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+['Header: ][^boost/asio/ip/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -59128,9 +64685,9 @@ Compare endpoints for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+['Header: ][^boost/asio/ip/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -59165,9 +64722,9 @@ Compare two endpoints for equality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+['Header: ][^boost/asio/ip/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -59187,9 +64744,9 @@ Compare endpoints for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+['Header: ][^boost/asio/ip/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -59209,9 +64766,9 @@ Compare endpoints for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+['Header: ][^boost/asio/ip/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -59292,9 +64849,9 @@ The protocol type associated with the endpoint.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+['Header: ][^boost/asio/ip/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -59465,17 +65022,17 @@ The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class te
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+['Header: ][^boost/asio/ip/basic_resolver.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:async_resolve ip::basic_resolver::async_resolve]
@@ -59485,7 +65042,7 @@ Asynchronously perform forward resolution of a query to a list of entries.
template<
typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void ``[link boost_asio.reference.ip__basic_resolver.async_resolve.overload1 async_resolve]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.ip__basic_resolver.async_resolve.overload1 async_resolve]``(
const query & q,
ResolveHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.async_resolve.overload1 more...]]``
@@ -59496,7 +65053,7 @@ Asynchronously perform reverse resolution of an endpoint to a list of entries.
template<
typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void ``[link boost_asio.reference.ip__basic_resolver.async_resolve.overload2 async_resolve]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.ip__basic_resolver.async_resolve.overload2 async_resolve]``(
const endpoint_type & e,
ResolveHandler handler);
`` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.async_resolve.overload2 more...]]``
@@ -59510,7 +65067,7 @@ Asynchronously perform forward resolution of a query to a list of entries.
template<
typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void async_resolve(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_resolve(
const query & q,
ResolveHandler handler);
@@ -59558,7 +65115,7 @@ Asynchronously perform reverse resolution of an endpoint to a list of entries.
template<
typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void async_resolve(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_resolve(
const endpoint_type & e,
ResolveHandler handler);
@@ -59657,9 +65214,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+['Header: ][^boost/asio/ip/basic_resolver.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -59820,9 +65377,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+['Header: ][^boost/asio/ip/basic_resolver.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -59892,7 +65449,9 @@ The iterator type.
[[link boost_asio.reference.ip__basic_resolver_iterator.create [*create]]]
[Create an iterator from an addrinfo list returned by getaddrinfo.
- Create an iterator from an endpoint, host name and service name. ]
+ Create an iterator from an endpoint, host name and service name.
+
+ Create an iterator from a sequence of endpoints, host and service name. ]
]
[
@@ -59942,18 +65501,18 @@ The iterator's value\_type, obtained when the iterator is dereferenced, is:
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+['Header: ][^boost/asio/ip/basic_resolver.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -59972,9 +65531,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+['Header: ][^boost/asio/ip/basic_resolver.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -60088,18 +65647,18 @@ The [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_quer
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+['Header: ][^boost/asio/ip/basic_resolver.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -60357,9 +65916,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+['Header: ][^boost/asio/ip/basic_resolver.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -60437,17 +65996,17 @@ The [link boost_asio.reference.ip__basic_resolver_entry `ip::basic_resolver_entr
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:basic_resolver_entry ip::basic_resolver_entry::basic_resolver_entry]
@@ -60528,9 +66087,9 @@ The endpoint type associated with the endpoint entry.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -60577,9 +66136,9 @@ The protocol type associated with the endpoint entry.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -60667,7 +66226,9 @@ An iterator over the entries produced by a resolver.
[[link boost_asio.reference.ip__basic_resolver_iterator.create [*create]]]
[Create an iterator from an addrinfo list returned by getaddrinfo.
- Create an iterator from an endpoint, host name and service name. ]
+ Create an iterator from an endpoint, host name and service name.
+
+ Create an iterator from a sequence of endpoints, host and service name. ]
]
[
@@ -60717,17 +66278,17 @@ The iterator's value\_type, obtained when the iterator is dereferenced, is:
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:basic_resolver_iterator ip::basic_resolver_iterator::basic_resolver_iterator]
@@ -60766,7 +66327,20 @@ Create an iterator from an endpoint, host name and service name.
`` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_iterator.create.overload2 more...]]``
-[section:overload1 ip::basic_resolver_iterator::create (1 of 2 overloads)]
+Create an iterator from a sequence of endpoints, host and service name.
+
+
+ template<
+ typename EndpointIterator>
+ static basic_resolver_iterator ``[link boost_asio.reference.ip__basic_resolver_iterator.create.overload3 create]``(
+ EndpointIterator begin,
+ EndpointIterator end,
+ const std::string & host_name,
+ const std::string & service_name);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_iterator.create.overload3 more...]]``
+
+
+[section:overload1 ip::basic_resolver_iterator::create (1 of 3 overloads)]
Create an iterator from an addrinfo list returned by getaddrinfo.
@@ -60783,7 +66357,7 @@ Create an iterator from an addrinfo list returned by getaddrinfo.
-[section:overload2 ip::basic_resolver_iterator::create (2 of 2 overloads)]
+[section:overload2 ip::basic_resolver_iterator::create (2 of 3 overloads)]
Create an iterator from an endpoint, host name and service name.
@@ -60799,6 +66373,26 @@ Create an iterator from an endpoint, host name and service name.
[endsect]
+
+[section:overload3 ip::basic_resolver_iterator::create (3 of 3 overloads)]
+
+
+Create an iterator from a sequence of endpoints, host and service name.
+
+
+ template<
+ typename EndpointIterator>
+ static basic_resolver_iterator create(
+ EndpointIterator begin,
+ EndpointIterator end,
+ const std::string & host_name,
+ const std::string & service_name);
+
+
+
+[endsect]
+
+
[endsect]
@@ -60814,9 +66408,9 @@ The type used for the distance between two iterators.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -60835,9 +66429,9 @@ The iterator category.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -60871,9 +66465,9 @@ Test two iterators for inequality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -60955,9 +66549,9 @@ Test two iterators for equality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -60976,9 +66570,9 @@ The type of the result of applying `operator->()` to the iterator.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -61052,18 +66646,18 @@ The [link boost_asio.reference.ip__basic_resolver_entry `ip::basic_resolver_entr
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -61137,18 +66731,18 @@ The [link boost_asio.reference.ip__basic_resolver_entry `ip::basic_resolver_entr
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -61267,17 +66861,17 @@ The [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_quer
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_query.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_query.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:address_configured ip::basic_resolver_query::address_configured]
@@ -61550,9 +67144,9 @@ A bitmask type (C++ Std [lib.bitmask.types]).
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_query.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_query.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -61650,9 +67244,9 @@ The protocol type associated with the endpoint query.
[heading Requirements]
-[*Header: ][^boost/asio/ip/basic_resolver_query.hpp]
+['Header: ][^boost/asio/ip/basic_resolver_query.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -61707,9 +67301,9 @@ Get the current host name.
[heading Requirements]
-[*Header: ][^boost/asio/ip/host_name.hpp]
+['Header: ][^boost/asio/ip/host_name.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 ip::host_name (1 of 2 overloads)]
@@ -61830,18 +67424,18 @@ The [link boost_asio.reference.ip__icmp `ip::icmp`] class contains flags necessa
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Safe.
+['Shared] ['objects:] Safe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/icmp.hpp]
+['Header: ][^boost/asio/ip/icmp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:endpoint ip::icmp::endpoint]
@@ -61986,9 +67580,9 @@ The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class te
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
@@ -61996,9 +67590,9 @@ The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class te
[heading Requirements]
-[*Header: ][^boost/asio/ip/icmp.hpp]
+['Header: ][^boost/asio/ip/icmp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -62032,9 +67626,9 @@ Compare two protocols for inequality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/icmp.hpp]
+['Header: ][^boost/asio/ip/icmp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -62054,9 +67648,9 @@ Compare two protocols for equality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/icmp.hpp]
+['Header: ][^boost/asio/ip/icmp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -62206,18 +67800,18 @@ The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class te
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/icmp.hpp]
+['Header: ][^boost/asio/ip/icmp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -62447,7 +68041,9 @@ The ICMP socket type.
Construct a basic_raw_socket on an existing native socket.
- Move-construct a basic_raw_socket from another. ]
+ Move-construct a basic_raw_socket from another.
+
+ Move-construct a basic_raw_socket from a socket of another protocol type. ]
]
[
@@ -62533,7 +68129,9 @@ The ICMP socket type.
[
[[link boost_asio.reference.basic_raw_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_raw_socket from another. ]
+ [Move-assign a basic_raw_socket from another.
+
+ Move-assign a basic_raw_socket from a socket of another protocol type. ]
]
[
@@ -62641,18 +68239,18 @@ The [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] class templa
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/icmp.hpp]
+['Header: ][^boost/asio/ip/icmp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -62746,9 +68344,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/ip/multicast.hpp]
+['Header: ][^boost/asio/ip/multicast.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -62797,9 +68395,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/ip/multicast.hpp]
+['Header: ][^boost/asio/ip/multicast.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -62838,9 +68436,9 @@ Setting the option to join a multicast group:
[heading Requirements]
-[*Header: ][^boost/asio/ip/multicast.hpp]
+['Header: ][^boost/asio/ip/multicast.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -62879,9 +68477,9 @@ Setting the option to leave a multicast group:
[heading Requirements]
-[*Header: ][^boost/asio/ip/multicast.hpp]
+['Header: ][^boost/asio/ip/multicast.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -62920,9 +68518,9 @@ Setting the option:
[heading Requirements]
-[*Header: ][^boost/asio/ip/multicast.hpp]
+['Header: ][^boost/asio/ip/multicast.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -63004,9 +68602,9 @@ The [link boost_asio.reference.ip__resolver_query_base `ip::resolver_query_base`
[heading Requirements]
-[*Header: ][^boost/asio/ip/resolver_query_base.hpp]
+['Header: ][^boost/asio/ip/resolver_query_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:address_configured ip::resolver_query_base::address_configured]
@@ -63063,9 +68661,9 @@ A bitmask type (C++ Std [lib.bitmask.types]).
[heading Requirements]
-[*Header: ][^boost/asio/ip/resolver_query_base.hpp]
+['Header: ][^boost/asio/ip/resolver_query_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -63255,9 +68853,9 @@ Default service implementation for a resolver.
[heading Requirements]
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
+['Header: ][^boost/asio/ip/resolver_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:async_resolve ip::resolver_service::async_resolve]
@@ -63267,7 +68865,7 @@ Asynchronously resolve a query to a list of entries.
template<
typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void ``[link boost_asio.reference.ip__resolver_service.async_resolve.overload1 async_resolve]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.ip__resolver_service.async_resolve.overload1 async_resolve]``(
implementation_type & impl,
const query_type & query,
ResolveHandler handler);
@@ -63279,7 +68877,7 @@ Asynchronously resolve an endpoint to a list of entries.
template<
typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void ``[link boost_asio.reference.ip__resolver_service.async_resolve.overload2 async_resolve]``(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.ip__resolver_service.async_resolve.overload2 async_resolve]``(
implementation_type & impl,
const endpoint_type & endpoint,
ResolveHandler handler);
@@ -63294,7 +68892,7 @@ Asynchronously resolve a query to a list of entries.
template<
typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void async_resolve(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_resolve(
implementation_type & impl,
const query_type & query,
ResolveHandler handler);
@@ -63313,7 +68911,7 @@ Asynchronously resolve an endpoint to a list of entries.
template<
typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void async_resolve(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_resolve(
implementation_type & impl,
const endpoint_type & endpoint,
ResolveHandler handler);
@@ -63383,9 +68981,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
+['Header: ][^boost/asio/ip/resolver_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -63435,9 +69033,9 @@ The type of a resolver implementation.
[heading Requirements]
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
+['Header: ][^boost/asio/ip/resolver_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -63507,7 +69105,9 @@ The iterator type.
[[link boost_asio.reference.ip__basic_resolver_iterator.create [*create]]]
[Create an iterator from an addrinfo list returned by getaddrinfo.
- Create an iterator from an endpoint, host name and service name. ]
+ Create an iterator from an endpoint, host name and service name.
+
+ Create an iterator from a sequence of endpoints, host and service name. ]
]
[
@@ -63557,18 +69157,18 @@ The iterator's value\_type, obtained when the iterator is dereferenced, is:
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
+['Header: ][^boost/asio/ip/resolver_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -63587,9 +69187,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
+['Header: ][^boost/asio/ip/resolver_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -63703,18 +69303,18 @@ The [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_quer
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
+['Header: ][^boost/asio/ip/resolver_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -63905,18 +69505,18 @@ The [link boost_asio.reference.ip__tcp `ip::tcp`] class contains flags necessary
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Safe.
+['Shared] ['objects:] Safe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/tcp.hpp]
+['Header: ][^boost/asio/ip/tcp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:acceptor ip::tcp::acceptor]
@@ -64112,7 +69712,9 @@ The TCP acceptor type.
Construct a basic_socket_acceptor on an existing native acceptor.
- Move-construct a basic_socket_acceptor from another. ]
+ Move-construct a basic_socket_acceptor from another.
+
+ Move-construct a basic_socket_acceptor from an acceptor of another protocol type. ]
]
[
@@ -64191,7 +69793,9 @@ The TCP acceptor type.
[
[[link boost_asio.reference.basic_socket_acceptor.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket_acceptor from another. ]
+ [Move-assign a basic_socket_acceptor from another.
+
+ Move-assign a basic_socket_acceptor from an acceptor of another protocol type. ]
]
[
@@ -64269,9 +69873,9 @@ The [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Example]
@@ -64293,9 +69897,9 @@ Opening a socket acceptor with the SO\_REUSEADDR option enabled:
[heading Requirements]
-[*Header: ][^boost/asio/ip/tcp.hpp]
+['Header: ][^boost/asio/ip/tcp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -64444,9 +70048,9 @@ The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class te
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
@@ -64454,9 +70058,9 @@ The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class te
[heading Requirements]
-[*Header: ][^boost/asio/ip/tcp.hpp]
+['Header: ][^boost/asio/ip/tcp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -64563,9 +70167,9 @@ The TCP iostream type.
[heading Requirements]
-[*Header: ][^boost/asio/ip/tcp.hpp]
+['Header: ][^boost/asio/ip/tcp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -64614,9 +70218,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/ip/tcp.hpp]
+['Header: ][^boost/asio/ip/tcp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -64636,9 +70240,9 @@ Compare two protocols for inequality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/tcp.hpp]
+['Header: ][^boost/asio/ip/tcp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -64658,9 +70262,9 @@ Compare two protocols for equality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/tcp.hpp]
+['Header: ][^boost/asio/ip/tcp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -64810,18 +70414,18 @@ The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class te
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/tcp.hpp]
+['Header: ][^boost/asio/ip/tcp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -65051,7 +70655,9 @@ The TCP socket type.
Construct a basic_stream_socket on an existing native socket.
- Move-construct a basic_stream_socket from another. ]
+ Move-construct a basic_stream_socket from another.
+
+ Move-construct a basic_stream_socket from a socket of another protocol type. ]
]
[
@@ -65137,7 +70743,9 @@ The TCP socket type.
[
[[link boost_asio.reference.basic_stream_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_stream_socket from another. ]
+ [Move-assign a basic_stream_socket from another.
+
+ Move-assign a basic_stream_socket from a socket of another protocol type. ]
]
[
@@ -65247,9 +70855,9 @@ The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
@@ -65257,9 +70865,9 @@ The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class
[heading Requirements]
-[*Header: ][^boost/asio/ip/tcp.hpp]
+['Header: ][^boost/asio/ip/tcp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -65398,18 +71006,18 @@ The [link boost_asio.reference.ip__udp `ip::udp`] class contains flags necessary
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Safe.
+['Shared] ['objects:] Safe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/udp.hpp]
+['Header: ][^boost/asio/ip/udp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:endpoint ip::udp::endpoint]
@@ -65554,9 +71162,9 @@ The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class te
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
@@ -65564,9 +71172,9 @@ The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class te
[heading Requirements]
-[*Header: ][^boost/asio/ip/udp.hpp]
+['Header: ][^boost/asio/ip/udp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -65600,9 +71208,9 @@ Compare two protocols for inequality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/udp.hpp]
+['Header: ][^boost/asio/ip/udp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -65622,9 +71230,9 @@ Compare two protocols for equality.
[heading Requirements]
-[*Header: ][^boost/asio/ip/udp.hpp]
+['Header: ][^boost/asio/ip/udp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -65774,18 +71382,18 @@ The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class te
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/udp.hpp]
+['Header: ][^boost/asio/ip/udp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -66015,7 +71623,9 @@ The UDP socket type.
Construct a basic_datagram_socket on an existing native socket.
- Move-construct a basic_datagram_socket from another. ]
+ Move-construct a basic_datagram_socket from another.
+
+ Move-construct a basic_datagram_socket from a socket of another protocol type. ]
]
[
@@ -66101,7 +71711,9 @@ The UDP socket type.
[
[[link boost_asio.reference.basic_datagram_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_datagram_socket from another. ]
+ [Move-assign a basic_datagram_socket from another.
+
+ Move-assign a basic_datagram_socket from a socket of another protocol type. ]
]
[
@@ -66209,18 +71821,18 @@ The [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/ip/udp.hpp]
+['Header: ][^boost/asio/ip/udp.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -66314,9 +71926,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/ip/unicast.hpp]
+['Header: ][^boost/asio/ip/unicast.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -66365,9 +71977,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/ip/v6_only.hpp]
+['Header: ][^boost/asio/ip/v6_only.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -66397,9 +72009,9 @@ Type trait used to determine whether a type can be used as a match condition fun
[heading Requirements]
-[*Header: ][^boost/asio/read_until.hpp]
+['Header: ][^boost/asio/read_until.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:value is_match_condition::value]
@@ -66442,9 +72054,9 @@ The [link boost_asio.reference.is_read_buffered `is_read_buffered`] class is a t
[heading Requirements]
-[*Header: ][^boost/asio/is_read_buffered.hpp]
+['Header: ][^boost/asio/is_read_buffered.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:value is_read_buffered::value]
@@ -66487,9 +72099,9 @@ The [link boost_asio.reference.is_write_buffered `is_write_buffered`] class is a
[heading Requirements]
-[*Header: ][^boost/asio/is_write_buffered.hpp]
+['Header: ][^boost/asio/is_write_buffered.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:value is_write_buffered::value]
@@ -66643,18 +72255,18 @@ The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+['Header: ][^boost/asio/local/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:basic_endpoint local::basic_endpoint::basic_endpoint]
@@ -66815,9 +72427,9 @@ The type of the endpoint structure. This type is dependent on the underlying imp
[heading Requirements]
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+['Header: ][^boost/asio/local/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -66837,9 +72449,9 @@ Compare two endpoints for inequality.
[heading Requirements]
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+['Header: ][^boost/asio/local/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -66859,9 +72471,9 @@ Compare endpoints for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+['Header: ][^boost/asio/local/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -66918,9 +72530,9 @@ Compare endpoints for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+['Header: ][^boost/asio/local/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -66955,9 +72567,9 @@ Compare two endpoints for equality.
[heading Requirements]
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+['Header: ][^boost/asio/local/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -66977,9 +72589,9 @@ Compare endpoints for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+['Header: ][^boost/asio/local/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -66999,9 +72611,9 @@ Compare endpoints for ordering.
[heading Requirements]
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+['Header: ][^boost/asio/local/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -67101,9 +72713,9 @@ The protocol type associated with the endpoint.
[heading Requirements]
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+['Header: ][^boost/asio/local/basic_endpoint.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -67168,9 +72780,9 @@ Create a pair of connected sockets.
[heading Requirements]
-[*Header: ][^boost/asio/local/connect_pair.hpp]
+['Header: ][^boost/asio/local/connect_pair.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 local::connect_pair (1 of 2 overloads)]
@@ -67270,18 +72882,18 @@ The [link boost_asio.reference.local__datagram_protocol `local::datagram_protoco
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Safe.
+['Shared] ['objects:] Safe.
[heading Requirements]
-[*Header: ][^boost/asio/local/datagram_protocol.hpp]
+['Header: ][^boost/asio/local/datagram_protocol.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:endpoint local::datagram_protocol::endpoint]
@@ -67417,9 +73029,9 @@ The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
@@ -67427,9 +73039,9 @@ The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] cl
[heading Requirements]
-[*Header: ][^boost/asio/local/datagram_protocol.hpp]
+['Header: ][^boost/asio/local/datagram_protocol.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -67687,7 +73299,9 @@ The UNIX domain socket type.
Construct a basic_datagram_socket on an existing native socket.
- Move-construct a basic_datagram_socket from another. ]
+ Move-construct a basic_datagram_socket from another.
+
+ Move-construct a basic_datagram_socket from a socket of another protocol type. ]
]
[
@@ -67773,7 +73387,9 @@ The UNIX domain socket type.
[
[[link boost_asio.reference.basic_datagram_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_datagram_socket from another. ]
+ [Move-assign a basic_datagram_socket from another.
+
+ Move-assign a basic_datagram_socket from a socket of another protocol type. ]
]
[
@@ -67881,18 +73497,18 @@ The [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/local/datagram_protocol.hpp]
+['Header: ][^boost/asio/local/datagram_protocol.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -67984,18 +73600,18 @@ The [link boost_asio.reference.local__stream_protocol `local::stream_protocol`]
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Safe.
+['Shared] ['objects:] Safe.
[heading Requirements]
-[*Header: ][^boost/asio/local/stream_protocol.hpp]
+['Header: ][^boost/asio/local/stream_protocol.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:acceptor local::stream_protocol::acceptor]
@@ -68191,7 +73807,9 @@ The UNIX domain acceptor type.
Construct a basic_socket_acceptor on an existing native acceptor.
- Move-construct a basic_socket_acceptor from another. ]
+ Move-construct a basic_socket_acceptor from another.
+
+ Move-construct a basic_socket_acceptor from an acceptor of another protocol type. ]
]
[
@@ -68270,7 +73888,9 @@ The UNIX domain acceptor type.
[
[[link boost_asio.reference.basic_socket_acceptor.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket_acceptor from another. ]
+ [Move-assign a basic_socket_acceptor from another.
+
+ Move-assign a basic_socket_acceptor from an acceptor of another protocol type. ]
]
[
@@ -68348,9 +73968,9 @@ The [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Example]
@@ -68372,9 +73992,9 @@ Opening a socket acceptor with the SO\_REUSEADDR option enabled:
[heading Requirements]
-[*Header: ][^boost/asio/local/stream_protocol.hpp]
+['Header: ][^boost/asio/local/stream_protocol.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -68514,9 +74134,9 @@ The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
@@ -68524,9 +74144,9 @@ The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] cl
[heading Requirements]
-[*Header: ][^boost/asio/local/stream_protocol.hpp]
+['Header: ][^boost/asio/local/stream_protocol.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -68633,9 +74253,9 @@ The UNIX domain iostream type.
[heading Requirements]
-[*Header: ][^boost/asio/local/stream_protocol.hpp]
+['Header: ][^boost/asio/local/stream_protocol.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -68879,7 +74499,9 @@ The UNIX domain socket type.
Construct a basic_stream_socket on an existing native socket.
- Move-construct a basic_stream_socket from another. ]
+ Move-construct a basic_stream_socket from another.
+
+ Move-construct a basic_stream_socket from a socket of another protocol type. ]
]
[
@@ -68965,7 +74587,9 @@ The UNIX domain socket type.
[
[[link boost_asio.reference.basic_stream_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_stream_socket from another. ]
+ [Move-assign a basic_stream_socket from another.
+
+ Move-assign a basic_stream_socket from a socket of another protocol type. ]
]
[
@@ -69075,9 +74699,9 @@ The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
@@ -69085,9 +74709,9 @@ The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class
[heading Requirements]
-[*Header: ][^boost/asio/local/stream_protocol.hpp]
+['Header: ][^boost/asio/local/stream_protocol.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -69165,9 +74789,9 @@ The `boost::asio::buffer_cast` function permits violations of type safety, so us
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:mutable_buffer mutable_buffer::mutable_buffer]
@@ -69338,9 +74962,9 @@ Adapts a single modifiable buffer so that it meets the requirements of the Mutab
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:begin mutable_buffers_1::begin]
@@ -69369,9 +74993,9 @@ A random-access iterator type that may be used to read elements.
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -69556,9 +75180,9 @@ The `boost::asio::buffer_cast` function permits violations of type safety, so us
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -69614,9 +75238,9 @@ An implementation of both the ConstBufferSequence and MutableBufferSequence conc
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:begin null_buffers::begin]
@@ -69645,9 +75269,9 @@ A random-access iterator type that may be used to read elements.
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -69724,9 +75348,9 @@ The `boost::asio::buffer_cast` function permits violations of type safety, so us
[heading Requirements]
-[*Header: ][^boost/asio/buffer.hpp]
+['Header: ][^boost/asio/buffer.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -69747,9 +75371,9 @@ An argument placeholder, for use with boost::bind(), that corresponds to the byt
[heading Requirements]
-[*Header: ][^boost/asio/placeholders.hpp]
+['Header: ][^boost/asio/placeholders.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -69767,9 +75391,9 @@ An argument placeholder, for use with boost::bind(), that corresponds to the err
[heading Requirements]
-[*Header: ][^boost/asio/placeholders.hpp]
+['Header: ][^boost/asio/placeholders.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -69787,9 +75411,9 @@ An argument placeholder, for use with boost::bind(), that corresponds to the ite
[heading Requirements]
-[*Header: ][^boost/asio/placeholders.hpp]
+['Header: ][^boost/asio/placeholders.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -69807,9 +75431,9 @@ An argument placeholder, for use with boost::bind(), that corresponds to the sig
[heading Requirements]
-[*Header: ][^boost/asio/placeholders.hpp]
+['Header: ][^boost/asio/placeholders.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -70011,17 +75635,17 @@ The [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign posix::basic_descriptor::assign]
@@ -70240,9 +75864,9 @@ Implements the FIONREAD IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -70547,9 +76171,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -70957,18 +76581,18 @@ The [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -71019,9 +76643,9 @@ The native representation of a descriptor.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -71163,9 +76787,9 @@ This function is used to modify the non-blocking mode of the underlying native d
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -71332,9 +76956,9 @@ Implements the FIONBIO IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -71432,9 +77056,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -71667,18 +77291,18 @@ The [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stre
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign posix::basic_stream_descriptor::assign]
@@ -71744,7 +77368,7 @@ Start an asynchronous read.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some(
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -71801,7 +77425,7 @@ Start an asynchronous write.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some(
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -72017,9 +77641,9 @@ Implements the FIONREAD IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -72336,9 +77960,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -72760,18 +78384,18 @@ The [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -72828,9 +78452,9 @@ The native representation of a descriptor.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -72981,9 +78605,9 @@ This function is used to modify the non-blocking mode of the underlying native d
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -73159,9 +78783,9 @@ Implements the FIONBIO IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -73388,9 +79012,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+['Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -73567,9 +79191,9 @@ The [link boost_asio.reference.posix__descriptor_base `posix::descriptor_base`]
[heading Requirements]
-[*Header: ][^boost/asio/posix/descriptor_base.hpp]
+['Header: ][^boost/asio/posix/descriptor_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:bytes_readable posix::descriptor_base::bytes_readable]
@@ -73603,9 +79227,9 @@ Implements the FIONREAD IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/posix/descriptor_base.hpp]
+['Header: ][^boost/asio/posix/descriptor_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -73642,9 +79266,9 @@ Implements the FIONBIO IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/posix/descriptor_base.hpp]
+['Header: ][^boost/asio/posix/descriptor_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -73875,9 +79499,9 @@ The [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stre
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
@@ -73885,9 +79509,9 @@ The [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stre
[heading Requirements]
-[*Header: ][^boost/asio/posix/stream_descriptor.hpp]
+['Header: ][^boost/asio/posix/stream_descriptor.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -74053,9 +79677,9 @@ Default service implementation for a stream descriptor.
[heading Requirements]
-[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
+['Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign posix::stream_descriptor_service::assign]
@@ -74084,7 +79708,7 @@ Start an asynchronous read.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some(
implementation_type & impl,
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -74104,7 +79728,7 @@ Start an asynchronous write.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some(
implementation_type & impl,
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -74220,9 +79844,9 @@ The type of a stream descriptor implementation.
[heading Requirements]
-[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
+['Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -74338,9 +79962,9 @@ The native descriptor type.
[heading Requirements]
-[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
+['Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -74413,9 +80037,9 @@ Sets the non-blocking mode of the native descriptor implementation.
[heading Requirements]
-[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
+['Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -74669,6 +80293,11 @@ Default service implementation for a raw socket.
]
[
+ [[link boost_asio.reference.raw_socket_service.converting_move_construct [*converting_move_construct]]]
+ [Move-construct a new raw socket implementation from another protocol type. ]
+ ]
+
+ [
[[link boost_asio.reference.raw_socket_service.destroy [*destroy]]]
[Destroy a raw socket implementation. ]
]
@@ -74792,9 +80421,9 @@ Default service implementation for a raw socket.
[heading Requirements]
-[*Header: ][^boost/asio/raw_socket_service.hpp]
+['Header: ][^boost/asio/raw_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign raw_socket_service::assign]
@@ -74823,7 +80452,7 @@ Start an asynchronous connect.
template<
typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
implementation_type & impl,
const endpoint_type & peer_endpoint,
ConnectHandler handler);
@@ -74843,7 +80472,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
implementation_type & impl,
const MutableBufferSequence & buffers,
socket_base::message_flags flags,
@@ -74864,7 +80493,7 @@ Start an asynchronous receive that will get the endpoint of the sender.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive_from(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive_from(
implementation_type & impl,
const MutableBufferSequence & buffers,
endpoint_type & sender_endpoint,
@@ -74886,7 +80515,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send(
implementation_type & impl,
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
@@ -74907,7 +80536,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send_to(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send_to(
implementation_type & impl,
const ConstBufferSequence & buffers,
const endpoint_type & destination,
@@ -75031,6 +80660,25 @@ Construct a new raw socket implementation.
+[section:converting_move_construct raw_socket_service::converting_move_construct]
+
+[indexterm2 converting_move_construct..raw_socket_service]
+Move-construct a new raw socket implementation from another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``>
+ void converting_move_construct(
+ implementation_type & impl,
+ typename raw_socket_service< Protocol1 >::implementation_type & other_impl,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+
+
+
+[endsect]
+
+
+
[section:destroy raw_socket_service::destroy]
[indexterm2 destroy..raw_socket_service]
@@ -75058,9 +80706,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/raw_socket_service.hpp]
+['Header: ][^boost/asio/raw_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -75129,9 +80777,9 @@ The type of a raw socket.
[heading Requirements]
-[*Header: ][^boost/asio/raw_socket_service.hpp]
+['Header: ][^boost/asio/raw_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -75263,9 +80911,9 @@ The native socket type.
[heading Requirements]
-[*Header: ][^boost/asio/raw_socket_service.hpp]
+['Header: ][^boost/asio/raw_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -75338,9 +80986,9 @@ Sets the non-blocking mode of the native socket implementation.
[heading Requirements]
-[*Header: ][^boost/asio/raw_socket_service.hpp]
+['Header: ][^boost/asio/raw_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -75428,9 +81076,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/raw_socket_service.hpp]
+['Header: ][^boost/asio/raw_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -75672,9 +81320,9 @@ Attempt to read a certain amount of data from a stream before returning.
[heading Requirements]
-[*Header: ][^boost/asio/read.hpp]
+['Header: ][^boost/asio/read.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 read (1 of 8 overloads)]
@@ -76260,7 +81908,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
std::size_t ``[link boost_asio.reference.read_at.overload1 read_at]``(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers);
`` [''''&raquo;''' [link boost_asio.reference.read_at.overload1 more...]]``
@@ -76269,7 +81917,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
std::size_t ``[link boost_asio.reference.read_at.overload2 read_at]``(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
boost::system::error_code & ec);
`` [''''&raquo;''' [link boost_asio.reference.read_at.overload2 more...]]``
@@ -76280,7 +81928,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename CompletionCondition>
std::size_t ``[link boost_asio.reference.read_at.overload3 read_at]``(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
CompletionCondition completion_condition);
`` [''''&raquo;''' [link boost_asio.reference.read_at.overload3 more...]]``
@@ -76291,7 +81939,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename CompletionCondition>
std::size_t ``[link boost_asio.reference.read_at.overload4 read_at]``(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
CompletionCondition completion_condition,
boost::system::error_code & ec);
@@ -76302,7 +81950,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename Allocator>
std::size_t ``[link boost_asio.reference.read_at.overload5 read_at]``(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b);
`` [''''&raquo;''' [link boost_asio.reference.read_at.overload5 more...]]``
@@ -76311,7 +81959,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename Allocator>
std::size_t ``[link boost_asio.reference.read_at.overload6 read_at]``(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
boost::system::error_code & ec);
`` [''''&raquo;''' [link boost_asio.reference.read_at.overload6 more...]]``
@@ -76322,7 +81970,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename CompletionCondition>
std::size_t ``[link boost_asio.reference.read_at.overload7 read_at]``(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition);
`` [''''&raquo;''' [link boost_asio.reference.read_at.overload7 more...]]``
@@ -76333,7 +81981,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename CompletionCondition>
std::size_t ``[link boost_asio.reference.read_at.overload8 read_at]``(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
boost::system::error_code & ec);
@@ -76341,9 +81989,9 @@ Attempt to read a certain amount of data at the specified offset before returnin
[heading Requirements]
-[*Header: ][^boost/asio/read_at.hpp]
+['Header: ][^boost/asio/read_at.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 read_at (1 of 8 overloads)]
@@ -76357,7 +82005,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
std::size_t read_at(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers);
@@ -76440,7 +82088,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
std::size_t read_at(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
boost::system::error_code & ec);
@@ -76518,7 +82166,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename CompletionCondition>
std::size_t read_at(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
CompletionCondition completion_condition);
@@ -76604,7 +82252,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename CompletionCondition>
std::size_t read_at(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
CompletionCondition completion_condition,
boost::system::error_code & ec);
@@ -76671,7 +82319,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename Allocator>
std::size_t read_at(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b);
@@ -76741,7 +82389,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename Allocator>
std::size_t read_at(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
boost::system::error_code & ec);
@@ -76805,7 +82453,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename CompletionCondition>
std::size_t read_at(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition);
@@ -76877,7 +82525,7 @@ Attempt to read a certain amount of data at the specified offset before returnin
typename CompletionCondition>
std::size_t read_at(
SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
boost::system::error_code & ec);
@@ -77002,7 +82650,7 @@ Read data into a streambuf until it contains a delimiter, matches a regular expr
SyncReadStream & s,
boost::asio::basic_streambuf< Allocator > & b,
MatchCondition match_condition,
- typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
+ typename enable_if< is_match_condition< MatchCondition >::value >::type * = 0);
`` [''''&raquo;''' [link boost_asio.reference.read_until.overload7 more...]]``
template<
@@ -77014,14 +82662,14 @@ Read data into a streambuf until it contains a delimiter, matches a regular expr
boost::asio::basic_streambuf< Allocator > & b,
MatchCondition match_condition,
boost::system::error_code & ec,
- typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
+ typename enable_if< is_match_condition< MatchCondition >::value >::type * = 0);
`` [''''&raquo;''' [link boost_asio.reference.read_until.overload8 more...]]``
[heading Requirements]
-[*Header: ][^boost/asio/read_until.hpp]
+['Header: ][^boost/asio/read_until.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 read_until (1 of 8 overloads)]
@@ -77500,7 +83148,7 @@ Read data into a streambuf until a function object indicates a match.
SyncReadStream & s,
boost::asio::basic_streambuf< Allocator > & b,
MatchCondition match_condition,
- typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
+ typename enable_if< is_match_condition< MatchCondition >::value >::type * = 0);
This function is used to read data into the specified streambuf until a user-defined match condition function object, when applied to the data contained in the streambuf, indicates a successful match. The call will block until one of the following conditions is true:
@@ -77634,7 +83282,7 @@ Read data into a streambuf until a function object indicates a match.
boost::asio::basic_streambuf< Allocator > & b,
MatchCondition match_condition,
boost::system::error_code & ec,
- typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
+ typename enable_if< is_match_condition< MatchCondition >::value >::type * = 0);
This function is used to read data into the specified streambuf until a user-defined match condition function object, when applied to the data contained in the streambuf, indicates a successful match. The call will block until one of the following conditions is true:
@@ -77804,6 +83452,11 @@ Default service implementation for a sequenced packet socket.
]
[
+ [[link boost_asio.reference.seq_packet_socket_service.converting_move_construct [*converting_move_construct]]]
+ [Move-construct a new sequenced packet socket implementation from another protocol type. ]
+ ]
+
+ [
[[link boost_asio.reference.seq_packet_socket_service.destroy [*destroy]]]
[Destroy a sequenced packet socket implementation. ]
]
@@ -77917,9 +83570,9 @@ Default service implementation for a sequenced packet socket.
[heading Requirements]
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
+['Header: ][^boost/asio/seq_packet_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign seq_packet_socket_service::assign]
@@ -77948,7 +83601,7 @@ Start an asynchronous connect.
template<
typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
implementation_type & impl,
const endpoint_type & peer_endpoint,
ConnectHandler handler);
@@ -77968,7 +83621,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
implementation_type & impl,
const MutableBufferSequence & buffers,
socket_base::message_flags in_flags,
@@ -77990,7 +83643,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send(
implementation_type & impl,
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
@@ -78115,6 +83768,25 @@ Construct a new sequenced packet socket implementation.
+[section:converting_move_construct seq_packet_socket_service::converting_move_construct]
+
+[indexterm2 converting_move_construct..seq_packet_socket_service]
+Move-construct a new sequenced packet socket implementation from another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``>
+ void converting_move_construct(
+ implementation_type & impl,
+ typename seq_packet_socket_service< Protocol1 >::implementation_type & other_impl,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+
+
+
+[endsect]
+
+
+
[section:destroy seq_packet_socket_service::destroy]
[indexterm2 destroy..seq_packet_socket_service]
@@ -78142,9 +83814,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
+['Header: ][^boost/asio/seq_packet_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -78213,9 +83885,9 @@ The type of a sequenced packet socket implementation.
[heading Requirements]
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
+['Header: ][^boost/asio/seq_packet_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -78347,9 +84019,9 @@ The native socket type.
[heading Requirements]
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
+['Header: ][^boost/asio/seq_packet_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -78422,9 +84094,9 @@ Sets the non-blocking mode of the native socket implementation.
[heading Requirements]
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
+['Header: ][^boost/asio/seq_packet_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -78514,9 +84186,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
+['Header: ][^boost/asio/seq_packet_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -78825,18 +84497,18 @@ The [link boost_asio.reference.basic_serial_port `basic_serial_port`] class temp
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/serial_port.hpp]
+['Header: ][^boost/asio/serial_port.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -78905,9 +84577,9 @@ The [link boost_asio.reference.serial_port_base `serial_port_base`] class is use
[heading Requirements]
-[*Header: ][^boost/asio/serial_port_base.hpp]
+['Header: ][^boost/asio/serial_port_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:_serial_port_base serial_port_base::~serial_port_base]
@@ -78965,9 +84637,9 @@ Implements changing the baud rate for a given serial port.
[heading Requirements]
-[*Header: ][^boost/asio/serial_port_base.hpp]
+['Header: ][^boost/asio/serial_port_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:baud_rate serial_port_base::baud_rate::baud_rate]
@@ -79064,9 +84736,9 @@ Implements changing the character size for a given serial port.
[heading Requirements]
-[*Header: ][^boost/asio/serial_port_base.hpp]
+['Header: ][^boost/asio/serial_port_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:character_size serial_port_base::character_size::character_size]
@@ -79176,9 +84848,9 @@ Implements changing the flow control for a given serial port.
[heading Requirements]
-[*Header: ][^boost/asio/serial_port_base.hpp]
+['Header: ][^boost/asio/serial_port_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:flow_control serial_port_base::flow_control::flow_control]
@@ -79324,9 +84996,9 @@ Implements changing the parity for a given serial port.
[heading Requirements]
-[*Header: ][^boost/asio/serial_port_base.hpp]
+['Header: ][^boost/asio/serial_port_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:load serial_port_base::parity::load]
@@ -79472,9 +85144,9 @@ Implements changing the number of stop bits for a given serial port.
[heading Requirements]
-[*Header: ][^boost/asio/serial_port_base.hpp]
+['Header: ][^boost/asio/serial_port_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:load serial_port_base::stop_bits::load]
@@ -79724,9 +85396,9 @@ Default service implementation for a serial port.
[heading Requirements]
-[*Header: ][^boost/asio/serial_port_service.hpp]
+['Header: ][^boost/asio/serial_port_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign serial_port_service::assign]
@@ -79755,7 +85427,7 @@ Start an asynchronous read.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some(
implementation_type & impl,
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -79775,7 +85447,7 @@ Start an asynchronous write.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some(
implementation_type & impl,
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -79910,9 +85582,9 @@ The type of a serial port implementation.
[heading Requirements]
-[*Header: ][^boost/asio/serial_port_service.hpp]
+['Header: ][^boost/asio/serial_port_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -80009,9 +85681,9 @@ The native handle type.
[heading Requirements]
-[*Header: ][^boost/asio/serial_port_service.hpp]
+['Header: ][^boost/asio/serial_port_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -80030,9 +85702,9 @@ The native handle type.
[heading Requirements]
-[*Header: ][^boost/asio/serial_port_service.hpp]
+['Header: ][^boost/asio/serial_port_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -80168,9 +85840,9 @@ Exception thrown when trying to add a duplicate service to an [link boost_asio.r
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:service_already_exists service_already_exists::service_already_exists]
@@ -80303,9 +85975,9 @@ Most applications will use the [link boost_asio.reference.signal_set `signal_set
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Example]
@@ -80361,9 +86033,9 @@ POSIX allows signals to be blocked using functions such as `sigprocmask()` and `
[heading Requirements]
-[*Header: ][^boost/asio/signal_set.hpp]
+['Header: ][^boost/asio/signal_set.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -80456,9 +86128,9 @@ Default service implementation for a signal set.
[heading Requirements]
-[*Header: ][^boost/asio/signal_set_service.hpp]
+['Header: ][^boost/asio/signal_set_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:add signal_set_service::add]
@@ -80484,7 +86156,7 @@ Add a signal to a signal\_set.
template<
typename ``[link boost_asio.reference.SignalHandler SignalHandler]``>
- void async_wait(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_wait(
implementation_type & impl,
SignalHandler handler);
@@ -80599,9 +86271,9 @@ The type of a signal set implementation.
[heading Requirements]
-[*Header: ][^boost/asio/signal_set_service.hpp]
+['Header: ][^boost/asio/signal_set_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -80735,6 +86407,11 @@ Default service implementation for a socket acceptor.
]
[
+ [[link boost_asio.reference.socket_acceptor_service.converting_move_construct [*converting_move_construct]]]
+ [Move-construct a new socket acceptor implementation from another protocol type. ]
+ ]
+
+ [
[[link boost_asio.reference.socket_acceptor_service.destroy [*destroy]]]
[Destroy a socket acceptor implementation. ]
]
@@ -80833,9 +86510,9 @@ Default service implementation for a socket acceptor.
[heading Requirements]
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
+['Header: ][^boost/asio/socket_acceptor_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:accept socket_acceptor_service::accept]
@@ -80845,12 +86522,14 @@ Accept a new connection.
template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
typename ``[link boost_asio.reference.SocketService SocketService]``>
boost::system::error_code accept(
implementation_type & impl,
- basic_socket< protocol_type, SocketService > & peer,
+ basic_socket< Protocol1, SocketService > & peer,
endpoint_type * peer_endpoint,
- boost::system::error_code & ec);
+ boost::system::error_code & ec,
+ typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type * = 0);
@@ -80883,13 +86562,15 @@ Start an asynchronous accept.
template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``,
typename ``[link boost_asio.reference.SocketService SocketService]``,
typename ``[link boost_asio.reference.AcceptHandler AcceptHandler]``>
- void async_accept(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_accept(
implementation_type & impl,
- basic_socket< protocol_type, SocketService > & peer,
+ basic_socket< Protocol1, SocketService > & peer,
endpoint_type * peer_endpoint,
- AcceptHandler handler);
+ AcceptHandler handler,
+ typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type * = 0);
@@ -80961,6 +86642,25 @@ Construct a new socket acceptor implementation.
+[section:converting_move_construct socket_acceptor_service::converting_move_construct]
+
+[indexterm2 converting_move_construct..socket_acceptor_service]
+Move-construct a new socket acceptor implementation from another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``>
+ void converting_move_construct(
+ implementation_type & impl,
+ typename socket_acceptor_service< Protocol1 >::implementation_type & other_impl,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+
+
+
+[endsect]
+
+
+
[section:destroy socket_acceptor_service::destroy]
[indexterm2 destroy..socket_acceptor_service]
@@ -80988,9 +86688,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
+['Header: ][^boost/asio/socket_acceptor_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81059,9 +86759,9 @@ The native type of the socket acceptor.
[heading Requirements]
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
+['Header: ][^boost/asio/socket_acceptor_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81210,9 +86910,9 @@ The native acceptor type.
[heading Requirements]
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
+['Header: ][^boost/asio/socket_acceptor_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81285,9 +86985,9 @@ Sets the non-blocking mode of the native acceptor implementation.
[heading Requirements]
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
+['Header: ][^boost/asio/socket_acceptor_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81377,9 +87077,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
+['Header: ][^boost/asio/socket_acceptor_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81586,9 +87286,9 @@ The [link boost_asio.reference.socket_base `socket_base`] class is used as a bas
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:broadcast socket_base::broadcast]
@@ -81633,9 +87333,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81673,9 +87373,9 @@ Implements the FIONREAD IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81724,9 +87424,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81775,9 +87475,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81826,9 +87526,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81877,9 +87577,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81929,9 +87629,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -81992,9 +87692,9 @@ Bitmask type for flags that can be passed to send and receive operations.
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -82059,9 +87759,9 @@ Implements the FIONBIO IO control command.
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -82110,9 +87810,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -82161,9 +87861,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -82212,9 +87912,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -82263,9 +87963,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -82314,9 +88014,9 @@ Getting the current option value:
[heading Requirements]
-[*Header: ][^boost/asio/socket_base.hpp]
+['Header: ][^boost/asio/socket_base.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -82377,6 +88077,256 @@ Protected destructor to prevent deletion through this type.
[endsect]
+[section:spawn spawn]
+
+[indexterm1 spawn]
+Start a new stackful coroutine.
+
+
+ template<
+ typename ``[link boost_asio.reference.Handler Handler]``,
+ typename Function>
+ void ``[link boost_asio.reference.spawn.overload1 spawn]``(
+ Handler handler,
+ Function function,
+ const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
+ `` [''''&raquo;''' [link boost_asio.reference.spawn.overload1 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.Handler Handler]``,
+ typename Function>
+ void ``[link boost_asio.reference.spawn.overload2 spawn]``(
+ basic_yield_context< Handler > ctx,
+ Function function,
+ const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
+ `` [''''&raquo;''' [link boost_asio.reference.spawn.overload2 more...]]``
+
+ template<
+ typename Function>
+ void ``[link boost_asio.reference.spawn.overload3 spawn]``(
+ boost::asio::io_service::strand strand,
+ Function function,
+ const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
+ `` [''''&raquo;''' [link boost_asio.reference.spawn.overload3 more...]]``
+
+ template<
+ typename Function>
+ void ``[link boost_asio.reference.spawn.overload4 spawn]``(
+ boost::asio::io_service & io_service,
+ Function function,
+ const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
+ `` [''''&raquo;''' [link boost_asio.reference.spawn.overload4 more...]]``
+
+The `spawn()` function is a high-level wrapper over the Boost.Coroutine library. This function enables programs to implement asynchronous logic in a synchronous manner, as illustrated by the following example:
+
+
+
+ boost::asio::spawn(my_strand, do_echo);
+
+ // ...
+
+ void do_echo(boost::asio::yield_context yield)
+ {
+ try
+ {
+ char data[128];
+ for (;;)
+ {
+ std::size_t length =
+ my_socket.async_read_some(
+ boost::asio::buffer(data), yield);
+
+ boost::asio::async_write(my_socket,
+ boost::asio::buffer(data, length), yield);
+ }
+ }
+ catch (std::exception& e)
+ {
+ // ...
+ }
+ }
+
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/spawn.hpp]
+
+['Convenience header: ]None
+
+
+[section:overload1 spawn (1 of 4 overloads)]
+
+
+Start a new stackful coroutine, calling the specified handler when it completes.
+
+
+ template<
+ typename ``[link boost_asio.reference.Handler Handler]``,
+ typename Function>
+ void spawn(
+ Handler handler,
+ Function function,
+ const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
+
+
+This function is used to launch a new coroutine.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[handler][A handler to be called when the coroutine exits. More importantly, the handler provides an execution context (via the the handler invocation hook) for the coroutine. The handler must have the signature:
+``
+ void handler();
+``
+]]
+
+[[function][The coroutine function. The function must have the signature:
+``
+ void function(basic_yield_context<Handler> yield);
+``
+]]
+
+[[attributes][Boost.Coroutine attributes used to customise the coroutine. ]]
+
+]
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 spawn (2 of 4 overloads)]
+
+
+Start a new stackful coroutine, inheriting the execution context of another.
+
+
+ template<
+ typename ``[link boost_asio.reference.Handler Handler]``,
+ typename Function>
+ void spawn(
+ basic_yield_context< Handler > ctx,
+ Function function,
+ const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
+
+
+This function is used to launch a new coroutine.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[ctx][Identifies the current coroutine as a parent of the new coroutine. This specifies that the new coroutine should inherit the execution context of the parent. For example, if the parent coroutine is executing in a particular strand, then the new coroutine will execute in the same strand.]]
+
+[[function][The coroutine function. The function must have the signature:
+``
+ void function(basic_yield_context<Handler> yield);
+``
+]]
+
+[[attributes][Boost.Coroutine attributes used to customise the coroutine. ]]
+
+]
+
+
+
+
+[endsect]
+
+
+
+[section:overload3 spawn (3 of 4 overloads)]
+
+
+Start a new stackful coroutine that executes in the context of a strand.
+
+
+ template<
+ typename Function>
+ void spawn(
+ boost::asio::io_service::strand strand,
+ Function function,
+ const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
+
+
+This function is used to launch a new coroutine.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[strand][Identifies a strand. By starting multiple coroutines on the same strand, the implementation ensures that none of those coroutines can execute simultaneously.]]
+
+[[function][The coroutine function. The function must have the signature:
+``
+ void function(yield_context yield);
+``
+]]
+
+[[attributes][Boost.Coroutine attributes used to customise the coroutine. ]]
+
+]
+
+
+
+
+[endsect]
+
+
+
+[section:overload4 spawn (4 of 4 overloads)]
+
+
+Start a new stackful coroutine that executes on a given [link boost_asio.reference.io_service `io_service`].
+
+
+ template<
+ typename Function>
+ void spawn(
+ boost::asio::io_service & io_service,
+ Function function,
+ const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
+
+
+This function is used to launch a new coroutine.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[io_service][Identifies the [link boost_asio.reference.io_service `io_service`] that will run the coroutine. The new coroutine is implicitly given its own strand within this [link boost_asio.reference.io_service `io_service`].]]
+
+[[function][The coroutine function. The function must have the signature:
+``
+ void function(yield_context yield);
+``
+]]
+
+[[attributes][Boost.Coroutine attributes used to customise the coroutine. ]]
+
+]
+
+
+
+
+[endsect]
+
+
+[endsect]
+
[section:ssl__context ssl::context]
@@ -82439,11 +88389,21 @@ Protected destructor to prevent deletion through this type.
[[Name][Description]]
[
+ [[link boost_asio.reference.ssl__context.add_certificate_authority [*add_certificate_authority]]]
+ [Add certification authority for performing verification. ]
+ ]
+
+ [
[[link boost_asio.reference.ssl__context.add_verify_path [*add_verify_path]]]
[Add a directory containing certificate authority files to be used for performing verification. ]
]
[
+ [[link boost_asio.reference.ssl__context.clear_options [*clear_options]]]
+ [Clear options on the context. ]
+ ]
+
+ [
[[link boost_asio.reference.ssl__context.context [*context]]]
[Constructor.
@@ -82493,11 +88453,26 @@ Protected destructor to prevent deletion through this type.
]
[
+ [[link boost_asio.reference.ssl__context.set_verify_depth [*set_verify_depth]]]
+ [Set the peer verification depth. ]
+ ]
+
+ [
[[link boost_asio.reference.ssl__context.set_verify_mode [*set_verify_mode]]]
[Set the peer verification mode. ]
]
[
+ [[link boost_asio.reference.ssl__context.use_certificate [*use_certificate]]]
+ [Use a certificate from a memory buffer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.use_certificate_chain [*use_certificate_chain]]]
+ [Use a certificate chain from a memory buffer. ]
+ ]
+
+ [
[[link boost_asio.reference.ssl__context.use_certificate_chain_file [*use_certificate_chain_file]]]
[Use a certificate chain from a file. ]
]
@@ -82508,16 +88483,31 @@ Protected destructor to prevent deletion through this type.
]
[
+ [[link boost_asio.reference.ssl__context.use_private_key [*use_private_key]]]
+ [Use a private key from a memory buffer. ]
+ ]
+
+ [
[[link boost_asio.reference.ssl__context.use_private_key_file [*use_private_key_file]]]
[Use a private key from a file. ]
]
[
+ [[link boost_asio.reference.ssl__context.use_rsa_private_key [*use_rsa_private_key]]]
+ [Use an RSA private key from a memory buffer. ]
+ ]
+
+ [
[[link boost_asio.reference.ssl__context.use_rsa_private_key_file [*use_rsa_private_key_file]]]
[Use an RSA private key from a file. ]
]
[
+ [[link boost_asio.reference.ssl__context.use_tmp_dh [*use_tmp_dh]]]
+ [Use the specified memory buffer to obtain the temporary Diffie-Hellman parameters. ]
+ ]
+
+ [
[[link boost_asio.reference.ssl__context.use_tmp_dh_file [*use_tmp_dh_file]]]
[Use the specified file to obtain the temporary Diffie-Hellman parameters. ]
]
@@ -82539,6 +88529,11 @@ Protected destructor to prevent deletion through this type.
]
[
+ [[link boost_asio.reference.ssl__context.no_compression [*no_compression]]]
+ [Disable compression. Compression is disabled by default. ]
+ ]
+
+ [
[[link boost_asio.reference.ssl__context.no_sslv2 [*no_sslv2]]]
[Disable SSL v2. ]
]
@@ -82562,9 +88557,107 @@ Protected destructor to prevent deletion through this type.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/context.hpp]
+['Header: ][^boost/asio/ssl/context.hpp]
+
+['Convenience header: ][^boost/asio/ssl.hpp]
+
+[section:add_certificate_authority ssl::context::add_certificate_authority]
+
+[indexterm2 add_certificate_authority..ssl::context]
+Add certification authority for performing verification.
+
+
+ void ``[link boost_asio.reference.ssl__context.add_certificate_authority.overload1 add_certificate_authority]``(
+ const const_buffer & ca);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.add_certificate_authority.overload1 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.add_certificate_authority.overload2 add_certificate_authority]``(
+ const const_buffer & ca,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.add_certificate_authority.overload2 more...]]``
+
+
+[section:overload1 ssl::context::add_certificate_authority (1 of 2 overloads)]
+
+
+Add certification authority for performing verification.
+
+
+ void add_certificate_authority(
+ const const_buffer & ca);
+
+
+This function is used to add one trusted certification authority from a memory buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[ca][The buffer containing the certification authority certificate. The certificate must use the PEM format.]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_get_cert_store` and `X509_STORE_add_cert`.
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 ssl::context::add_certificate_authority (2 of 2 overloads)]
+
+
+Add certification authority for performing verification.
+
+
+ boost::system::error_code add_certificate_authority(
+ const const_buffer & ca,
+ boost::system::error_code & ec);
+
+
+This function is used to add one trusted certification authority from a memory buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[ca][The buffer containing the certification authority certificate. The certificate must use the PEM format.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_get_cert_store` and `X509_STORE_add_cert`.
+
+
+
+
+[endsect]
+
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[endsect]
[section:add_verify_path ssl::context::add_verify_path]
@@ -82664,6 +88757,104 @@ Calls `SSL_CTX_load_verify_locations`.
[endsect]
+[section:clear_options ssl::context::clear_options]
+
+[indexterm2 clear_options..ssl::context]
+Clear options on the context.
+
+
+ void ``[link boost_asio.reference.ssl__context.clear_options.overload1 clear_options]``(
+ options o);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.clear_options.overload1 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.clear_options.overload2 clear_options]``(
+ options o,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.clear_options.overload2 more...]]``
+
+
+[section:overload1 ssl::context::clear_options (1 of 2 overloads)]
+
+
+Clear options on the context.
+
+
+ void clear_options(
+ options o);
+
+
+This function may be used to configure the SSL options used by the context.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[o][A bitmask of options. The available option values are defined in the [link boost_asio.reference.ssl__context_base `ssl::context_base`] class. The specified options, if currently enabled on the context, are cleared.]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_clear_options`.
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 ssl::context::clear_options (2 of 2 overloads)]
+
+
+Clear options on the context.
+
+
+ boost::system::error_code clear_options(
+ options o,
+ boost::system::error_code & ec);
+
+
+This function may be used to configure the SSL options used by the context.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[o][A bitmask of options. The available option values are defined in the [link boost_asio.reference.ssl__context_base `ssl::context_base`] class. The specified options, if currently enabled on the context, are cleared.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_clear_options`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
[section:context ssl::context::context]
[indexterm2 context..ssl::context]
@@ -82770,7 +88961,7 @@ Following the move, the following operations only are valid for the moved-from o
Implement various bug workarounds.
- static const int default_workarounds = implementation_defined;
+ static const long default_workarounds = implementation_defined;
@@ -82838,9 +89029,9 @@ This function may be used to obtain the underlying implementation of the context
[heading Requirements]
-[*Header: ][^boost/asio/ssl/context.hpp]
+['Header: ][^boost/asio/ssl/context.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -82965,6 +89156,12 @@ Different methods supported by a context.
[indexterm2 sslv23..ssl::context]
[indexterm2 sslv23_client..ssl::context]
[indexterm2 sslv23_server..ssl::context]
+[indexterm2 tlsv11..ssl::context]
+[indexterm2 tlsv11_client..ssl::context]
+[indexterm2 tlsv11_server..ssl::context]
+[indexterm2 tlsv12..ssl::context]
+[indexterm2 tlsv12_client..ssl::context]
+[indexterm2 tlsv12_server..ssl::context]
[heading Values]
[variablelist
@@ -83029,6 +89226,36 @@ Different methods supported by a context.
[SSL/TLS server. ]
]
+ [
+ [tlsv11]
+ [Generic TLS version 1.1. ]
+ ]
+
+ [
+ [tlsv11_client]
+ [TLS version 1.1 client. ]
+ ]
+
+ [
+ [tlsv11_server]
+ [TLS version 1.1 server. ]
+ ]
+
+ [
+ [tlsv12]
+ [Generic TLS version 1.2. ]
+ ]
+
+ [
+ [tlsv12_client]
+ [TLS version 1.2 client. ]
+ ]
+
+ [
+ [tlsv12_server]
+ [TLS version 1.2 server. ]
+ ]
+
]
@@ -83065,9 +89292,23 @@ The native handle type of the SSL context.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/context.hpp]
+['Header: ][^boost/asio/ssl/context.hpp]
+
+['Convenience header: ][^boost/asio/ssl.hpp]
+
+
+[endsect]
+
+
+
+[section:no_compression ssl::context::no_compression]
+
+[indexterm2 no_compression..ssl::context]
+Disable compression. Compression is disabled by default.
+
+
+ static const long no_compression = implementation_defined;
-[*Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -83080,7 +89321,7 @@ The native handle type of the SSL context.
Disable SSL v2.
- static const int no_sslv2 = implementation_defined;
+ static const long no_sslv2 = implementation_defined;
@@ -83094,7 +89335,7 @@ Disable SSL v2.
Disable SSL v3.
- static const int no_sslv3 = implementation_defined;
+ static const long no_sslv3 = implementation_defined;
@@ -83108,7 +89349,7 @@ Disable SSL v3.
Disable TLS v1.
- static const int no_tlsv1 = implementation_defined;
+ static const long no_tlsv1 = implementation_defined;
@@ -83161,15 +89402,15 @@ Following the move, the following operations only are valid for the moved-from o
Bitmask type for SSL options.
- typedef int options;
+ typedef long options;
[heading Requirements]
-[*Header: ][^boost/asio/ssl/context.hpp]
+['Header: ][^boost/asio/ssl/context.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -83627,6 +89868,104 @@ Calls `SSL_CTX_set_verify`.
[endsect]
+[section:set_verify_depth ssl::context::set_verify_depth]
+
+[indexterm2 set_verify_depth..ssl::context]
+Set the peer verification depth.
+
+
+ void ``[link boost_asio.reference.ssl__context.set_verify_depth.overload1 set_verify_depth]``(
+ int depth);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_depth.overload1 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.set_verify_depth.overload2 set_verify_depth]``(
+ int depth,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_depth.overload2 more...]]``
+
+
+[section:overload1 ssl::context::set_verify_depth (1 of 2 overloads)]
+
+
+Set the peer verification depth.
+
+
+ void set_verify_depth(
+ int depth);
+
+
+This function may be used to configure the maximum verification depth allowed by the context.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[depth][Maximum depth for the certificate chain verification that shall be allowed.]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_set_verify_depth`.
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 ssl::context::set_verify_depth (2 of 2 overloads)]
+
+
+Set the peer verification depth.
+
+
+ boost::system::error_code set_verify_depth(
+ int depth,
+ boost::system::error_code & ec);
+
+
+This function may be used to configure the maximum verification depth allowed by the context.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[depth][Maximum depth for the certificate chain verification that shall be allowed.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_set_verify_depth`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
[section:set_verify_mode ssl::context::set_verify_mode]
[indexterm2 set_verify_mode..ssl::context]
@@ -83732,13 +90071,217 @@ Calls `SSL_CTX_set_verify`.
Always create a new key when using tmp\_dh parameters.
- static const int single_dh_use = implementation_defined;
+ static const long single_dh_use = implementation_defined;
[endsect]
+[section:use_certificate ssl::context::use_certificate]
+
+[indexterm2 use_certificate..ssl::context]
+Use a certificate from a memory buffer.
+
+
+ void ``[link boost_asio.reference.ssl__context.use_certificate.overload1 use_certificate]``(
+ const const_buffer & certificate,
+ file_format format);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate.overload1 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_certificate.overload2 use_certificate]``(
+ const const_buffer & certificate,
+ file_format format,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate.overload2 more...]]``
+
+
+[section:overload1 ssl::context::use_certificate (1 of 2 overloads)]
+
+
+Use a certificate from a memory buffer.
+
+
+ void use_certificate(
+ const const_buffer & certificate,
+ file_format format);
+
+
+This function is used to load a certificate into the context from a buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[certificate][The buffer containing the certificate.]]
+
+[[format][The certificate format (ASN.1 or PEM).]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_use_certificate` or SSL\_CTX\_use\_certificate\_ASN1.
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 ssl::context::use_certificate (2 of 2 overloads)]
+
+
+Use a certificate from a memory buffer.
+
+
+ boost::system::error_code use_certificate(
+ const const_buffer & certificate,
+ file_format format,
+ boost::system::error_code & ec);
+
+
+This function is used to load a certificate into the context from a buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[certificate][The buffer containing the certificate.]]
+
+[[format][The certificate format (ASN.1 or PEM).]]
+
+[[ec][Set to indicate what error occurred, if any.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_use_certificate` or SSL\_CTX\_use\_certificate\_ASN1.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+[section:use_certificate_chain ssl::context::use_certificate_chain]
+
+[indexterm2 use_certificate_chain..ssl::context]
+Use a certificate chain from a memory buffer.
+
+
+ void ``[link boost_asio.reference.ssl__context.use_certificate_chain.overload1 use_certificate_chain]``(
+ const const_buffer & chain);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_chain.overload1 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_certificate_chain.overload2 use_certificate_chain]``(
+ const const_buffer & chain,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_chain.overload2 more...]]``
+
+
+[section:overload1 ssl::context::use_certificate_chain (1 of 2 overloads)]
+
+
+Use a certificate chain from a memory buffer.
+
+
+ void use_certificate_chain(
+ const const_buffer & chain);
+
+
+This function is used to load a certificate chain into the context from a buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[chain][The buffer containing the certificate chain. The certificate chain must use the PEM format.]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_use_certificate` and SSL\_CTX\_add\_extra\_chain\_cert.
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 ssl::context::use_certificate_chain (2 of 2 overloads)]
+
+
+Use a certificate chain from a memory buffer.
+
+
+ boost::system::error_code use_certificate_chain(
+ const const_buffer & chain,
+ boost::system::error_code & ec);
+
+
+This function is used to load a certificate chain into the context from a buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[chain][The buffer containing the certificate chain. The certificate chain must use the PEM format.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_use_certificate` and SSL\_CTX\_add\_extra\_chain\_cert.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
[section:use_certificate_chain_file ssl::context::use_certificate_chain_file]
[indexterm2 use_certificate_chain_file..ssl::context]
@@ -83943,6 +90486,112 @@ Calls `SSL_CTX_use_certificate_file`.
[endsect]
+[section:use_private_key ssl::context::use_private_key]
+
+[indexterm2 use_private_key..ssl::context]
+Use a private key from a memory buffer.
+
+
+ void ``[link boost_asio.reference.ssl__context.use_private_key.overload1 use_private_key]``(
+ const const_buffer & private_key,
+ file_format format);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_private_key.overload1 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_private_key.overload2 use_private_key]``(
+ const const_buffer & private_key,
+ file_format format,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_private_key.overload2 more...]]``
+
+
+[section:overload1 ssl::context::use_private_key (1 of 2 overloads)]
+
+
+Use a private key from a memory buffer.
+
+
+ void use_private_key(
+ const const_buffer & private_key,
+ file_format format);
+
+
+This function is used to load a private key into the context from a buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[private_key][The buffer containing the private key.]]
+
+[[format][The private key format (ASN.1 or PEM).]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_use_PrivateKey` or SSL\_CTX\_use\_PrivateKey\_ASN1.
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 ssl::context::use_private_key (2 of 2 overloads)]
+
+
+Use a private key from a memory buffer.
+
+
+ boost::system::error_code use_private_key(
+ const const_buffer & private_key,
+ file_format format,
+ boost::system::error_code & ec);
+
+
+This function is used to load a private key into the context from a buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[private_key][The buffer containing the private key.]]
+
+[[format][The private key format (ASN.1 or PEM).]]
+
+[[ec][Set to indicate what error occurred, if any.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_use_PrivateKey` or SSL\_CTX\_use\_PrivateKey\_ASN1.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
[section:use_private_key_file ssl::context::use_private_key_file]
[indexterm2 use_private_key_file..ssl::context]
@@ -84049,6 +90698,112 @@ Calls `SSL_CTX_use_PrivateKey_file`.
[endsect]
+[section:use_rsa_private_key ssl::context::use_rsa_private_key]
+
+[indexterm2 use_rsa_private_key..ssl::context]
+Use an RSA private key from a memory buffer.
+
+
+ void ``[link boost_asio.reference.ssl__context.use_rsa_private_key.overload1 use_rsa_private_key]``(
+ const const_buffer & private_key,
+ file_format format);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_rsa_private_key.overload1 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_rsa_private_key.overload2 use_rsa_private_key]``(
+ const const_buffer & private_key,
+ file_format format,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_rsa_private_key.overload2 more...]]``
+
+
+[section:overload1 ssl::context::use_rsa_private_key (1 of 2 overloads)]
+
+
+Use an RSA private key from a memory buffer.
+
+
+ void use_rsa_private_key(
+ const const_buffer & private_key,
+ file_format format);
+
+
+This function is used to load an RSA private key into the context from a buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[private_key][The buffer containing the RSA private key.]]
+
+[[format][The private key format (ASN.1 or PEM).]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_use_RSAPrivateKey` or SSL\_CTX\_use\_RSAPrivateKey\_ASN1.
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 ssl::context::use_rsa_private_key (2 of 2 overloads)]
+
+
+Use an RSA private key from a memory buffer.
+
+
+ boost::system::error_code use_rsa_private_key(
+ const const_buffer & private_key,
+ file_format format,
+ boost::system::error_code & ec);
+
+
+This function is used to load an RSA private key into the context from a buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[private_key][The buffer containing the RSA private key.]]
+
+[[format][The private key format (ASN.1 or PEM).]]
+
+[[ec][Set to indicate what error occurred, if any.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_use_RSAPrivateKey` or SSL\_CTX\_use\_RSAPrivateKey\_ASN1.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
[section:use_rsa_private_key_file ssl::context::use_rsa_private_key_file]
[indexterm2 use_rsa_private_key_file..ssl::context]
@@ -84155,6 +90910,104 @@ Calls `SSL_CTX_use_RSAPrivateKey_file`.
[endsect]
+[section:use_tmp_dh ssl::context::use_tmp_dh]
+
+[indexterm2 use_tmp_dh..ssl::context]
+Use the specified memory buffer to obtain the temporary Diffie-Hellman parameters.
+
+
+ void ``[link boost_asio.reference.ssl__context.use_tmp_dh.overload1 use_tmp_dh]``(
+ const const_buffer & dh);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_tmp_dh.overload1 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_tmp_dh.overload2 use_tmp_dh]``(
+ const const_buffer & dh,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_tmp_dh.overload2 more...]]``
+
+
+[section:overload1 ssl::context::use_tmp_dh (1 of 2 overloads)]
+
+
+Use the specified memory buffer to obtain the temporary Diffie-Hellman parameters.
+
+
+ void use_tmp_dh(
+ const const_buffer & dh);
+
+
+This function is used to load Diffie-Hellman parameters into the context from a buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[dh][The memory buffer containing the Diffie-Hellman parameters. The buffer must use the PEM format.]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_set_tmp_dh`.
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 ssl::context::use_tmp_dh (2 of 2 overloads)]
+
+
+Use the specified memory buffer to obtain the temporary Diffie-Hellman parameters.
+
+
+ boost::system::error_code use_tmp_dh(
+ const const_buffer & dh,
+ boost::system::error_code & ec);
+
+
+This function is used to load Diffie-Hellman parameters into the context from a buffer.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[dh][The memory buffer containing the Diffie-Hellman parameters. The buffer must use the PEM format.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_CTX_set_tmp_dh`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
[section:use_tmp_dh_file ssl::context::use_tmp_dh_file]
[indexterm2 use_tmp_dh_file..ssl::context]
@@ -84334,6 +91187,11 @@ The [link boost_asio.reference.ssl__context_base `ssl::context_base`] class is u
]
[
+ [[link boost_asio.reference.ssl__context_base.no_compression [*no_compression]]]
+ [Disable compression. Compression is disabled by default. ]
+ ]
+
+ [
[[link boost_asio.reference.ssl__context_base.no_sslv2 [*no_sslv2]]]
[Disable SSL v2. ]
]
@@ -84357,9 +91215,9 @@ The [link boost_asio.reference.ssl__context_base `ssl::context_base`] class is u
[heading Requirements]
-[*Header: ][^boost/asio/ssl/context_base.hpp]
+['Header: ][^boost/asio/ssl/context_base.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[section:default_workarounds ssl::context_base::default_workarounds]
@@ -84368,7 +91226,7 @@ The [link boost_asio.reference.ssl__context_base `ssl::context_base`] class is u
Implement various bug workarounds.
- static const int default_workarounds = implementation_defined;
+ static const long default_workarounds = implementation_defined;
@@ -84428,6 +91286,12 @@ Different methods supported by a context.
[indexterm2 sslv23..ssl::context_base]
[indexterm2 sslv23_client..ssl::context_base]
[indexterm2 sslv23_server..ssl::context_base]
+[indexterm2 tlsv11..ssl::context_base]
+[indexterm2 tlsv11_client..ssl::context_base]
+[indexterm2 tlsv11_server..ssl::context_base]
+[indexterm2 tlsv12..ssl::context_base]
+[indexterm2 tlsv12_client..ssl::context_base]
+[indexterm2 tlsv12_server..ssl::context_base]
[heading Values]
[variablelist
@@ -84492,6 +91356,36 @@ Different methods supported by a context.
[SSL/TLS server. ]
]
+ [
+ [tlsv11]
+ [Generic TLS version 1.1. ]
+ ]
+
+ [
+ [tlsv11_client]
+ [TLS version 1.1 client. ]
+ ]
+
+ [
+ [tlsv11_server]
+ [TLS version 1.1 server. ]
+ ]
+
+ [
+ [tlsv12]
+ [Generic TLS version 1.2. ]
+ ]
+
+ [
+ [tlsv12_client]
+ [TLS version 1.2 client. ]
+ ]
+
+ [
+ [tlsv12_server]
+ [TLS version 1.2 server. ]
+ ]
+
]
@@ -84500,13 +91394,27 @@ Different methods supported by a context.
+[section:no_compression ssl::context_base::no_compression]
+
+[indexterm2 no_compression..ssl::context_base]
+Disable compression. Compression is disabled by default.
+
+
+ static const long no_compression = implementation_defined;
+
+
+
+[endsect]
+
+
+
[section:no_sslv2 ssl::context_base::no_sslv2]
[indexterm2 no_sslv2..ssl::context_base]
Disable SSL v2.
- static const int no_sslv2 = implementation_defined;
+ static const long no_sslv2 = implementation_defined;
@@ -84520,7 +91428,7 @@ Disable SSL v2.
Disable SSL v3.
- static const int no_sslv3 = implementation_defined;
+ static const long no_sslv3 = implementation_defined;
@@ -84534,7 +91442,7 @@ Disable SSL v3.
Disable TLS v1.
- static const int no_tlsv1 = implementation_defined;
+ static const long no_tlsv1 = implementation_defined;
@@ -84548,15 +91456,15 @@ Disable TLS v1.
Bitmask type for SSL options.
- typedef int options;
+ typedef long options;
[heading Requirements]
-[*Header: ][^boost/asio/ssl/context_base.hpp]
+['Header: ][^boost/asio/ssl/context_base.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -84601,7 +91509,7 @@ Purpose of PEM password.
Always create a new key when using tmp\_dh parameters.
- static const int single_dh_use = implementation_defined;
+ static const long single_dh_use = implementation_defined;
@@ -84698,9 +91606,9 @@ The following example shows how to synchronously open a secure connection to a g
[heading Requirements]
-[*Header: ][^boost/asio/ssl/rfc2818_verification.hpp]
+['Header: ][^boost/asio/ssl/rfc2818_verification.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[section:operator_lp__rp_ ssl::rfc2818_verification::operator()]
@@ -84731,9 +91639,9 @@ The type of the function object's result.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/rfc2818_verification.hpp]
+['Header: ][^boost/asio/ssl/rfc2818_verification.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -84883,6 +91791,11 @@ Provides stream-oriented functionality using SSL.
]
[
+ [[link boost_asio.reference.ssl__stream.set_verify_depth [*set_verify_depth]]]
+ [Set the peer verification depth. ]
+ ]
+
+ [
[[link boost_asio.reference.ssl__stream.set_verify_mode [*set_verify_mode]]]
[Set the peer verification mode. ]
]
@@ -84914,9 +91827,9 @@ The stream class template provides asynchronous and blocking stream-oriented fun
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe. The application must also ensure that all asynchronous operations are performed within the same implicit or explicit strand.
+['Shared] ['objects:] Unsafe. The application must also ensure that all asynchronous operations are performed within the same implicit or explicit strand.
[heading Example]
@@ -84935,10 +91848,9 @@ To use the SSL stream template with an `ip::tcp::socket`, you would write:
[heading Requirements]
-[*Header: ][^boost/asio/ssl/stream.hpp]
-
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Header: ][^boost/asio/ssl/stream.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[section:async_handshake ssl::stream::async_handshake]
@@ -84948,7 +91860,30 @@ Start an asynchronous SSL handshake.
template<
typename ``[link boost_asio.reference.HandshakeHandler HandshakeHandler]``>
- void async_handshake(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.ssl__stream.async_handshake.overload1 async_handshake]``(
+ handshake_type type,
+ HandshakeHandler handler);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.async_handshake.overload1 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.BufferedHandshakeHandler BufferedHandshakeHandler]``>
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` ``[link boost_asio.reference.ssl__stream.async_handshake.overload2 async_handshake]``(
+ handshake_type type,
+ const ConstBufferSequence & buffers,
+ BufferedHandshakeHandler handler);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.async_handshake.overload2 more...]]``
+
+
+[section:overload1 ssl::stream::async_handshake (1 of 2 overloads)]
+
+
+Start an asynchronous SSL handshake.
+
+
+ template<
+ typename ``[link boost_asio.reference.HandshakeHandler HandshakeHandler]``>
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_handshake(
handshake_type type,
HandshakeHandler handler);
@@ -84980,6 +91915,53 @@ This function is used to asynchronously perform an SSL handshake on the stream.
+[section:overload2 ssl::stream::async_handshake (2 of 2 overloads)]
+
+
+Start an asynchronous SSL handshake.
+
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.BufferedHandshakeHandler BufferedHandshakeHandler]``>
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_handshake(
+ handshake_type type,
+ const ConstBufferSequence & buffers,
+ BufferedHandshakeHandler handler);
+
+
+This function is used to asynchronously perform an SSL handshake on the stream. This function call always returns immediately.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
+
+[[buffers][The buffered data to be reused for the handshake. Although the buffers object may be copied as necessary, ownership of the underlying buffers is retained by the caller, which must guarantee that they remain valid until the handler is called.]]
+
+[[handler][The handler to be called when the handshake operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error, // Result of operation.
+ std::size_t bytes_transferred // Amount of buffers used in handshake.
+ );
+``
+]]
+
+]
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
[section:async_read_some ssl::stream::async_read_some]
[indexterm2 async_read_some..ssl::stream]
@@ -84989,7 +91971,7 @@ Start an asynchronous read.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some(
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -85035,7 +92017,7 @@ Asynchronously shut down SSL on the stream.
template<
typename ``[link boost_asio.reference.ShutdownHandler ShutdownHandler]``>
- void async_shutdown(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_shutdown(
ShutdownHandler handler);
@@ -85073,7 +92055,7 @@ Start an asynchronous write.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some(
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -85148,8 +92130,23 @@ Perform SSL handshaking.
boost::system::error_code & ec);
`` [''''&raquo;''' [link boost_asio.reference.ssl__stream.handshake.overload2 more...]]``
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ void ``[link boost_asio.reference.ssl__stream.handshake.overload3 handshake]``(
+ handshake_type type,
+ const ConstBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.handshake.overload3 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ boost::system::error_code ``[link boost_asio.reference.ssl__stream.handshake.overload4 handshake]``(
+ handshake_type type,
+ const ConstBufferSequence & buffers,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.handshake.overload4 more...]]``
+
-[section:overload1 ssl::stream::handshake (1 of 2 overloads)]
+[section:overload1 ssl::stream::handshake (1 of 4 overloads)]
Perform SSL handshaking.
@@ -85188,14 +92185,93 @@ This function is used to perform SSL handshaking on the stream. The function cal
-[section:overload2 ssl::stream::handshake (2 of 2 overloads)]
+[section:overload2 ssl::stream::handshake (2 of 4 overloads)]
+
+
+Perform SSL handshaking.
+
+
+ boost::system::error_code handshake(
+ handshake_type type,
+ boost::system::error_code & ec);
+
+
+This function is used to perform SSL handshaking on the stream. The function call will block until handshaking is complete or an error occurs.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
+
+[[ec][Set to indicate what error occurred, if any. ]]
+
+]
+
+
+
+
+[endsect]
+
+
+
+[section:overload3 ssl::stream::handshake (3 of 4 overloads)]
+
+
+Perform SSL handshaking.
+
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ void handshake(
+ handshake_type type,
+ const ConstBufferSequence & buffers);
+
+
+This function is used to perform SSL handshaking on the stream. The function call will block until handshaking is complete or an error occurs.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
+
+[[buffers][The buffered data to be reused for the handshake.]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
+
+]
+
+
+
+
+[endsect]
+
+
+
+[section:overload4 ssl::stream::handshake (4 of 4 overloads)]
Perform SSL handshaking.
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
boost::system::error_code handshake(
handshake_type type,
+ const ConstBufferSequence & buffers,
boost::system::error_code & ec);
@@ -85209,6 +92285,8 @@ This function is used to perform SSL handshaking on the stream. The function cal
[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
+[[buffers][The buffered data to be reused for the handshake.]]
+
[[ec][Set to indicate what error occurred, if any. ]]
]
@@ -85282,9 +92360,9 @@ This function may be used to obtain the underlying implementation of the context
[heading Requirements]
-[*Header: ][^boost/asio/ssl/stream.hpp]
+['Header: ][^boost/asio/ssl/stream.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -85363,9 +92441,9 @@ The type of the lowest layer.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/stream.hpp]
+['Header: ][^boost/asio/ssl/stream.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -85422,9 +92500,9 @@ The native handle type of the SSL stream.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/stream.hpp]
+['Header: ][^boost/asio/ssl/stream.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -85497,15 +92575,15 @@ A reference to the next layer in the stack of stream layers. Ownership is not tr
The type of the next layer.
- typedef boost::remove_reference< Stream >::type next_layer_type;
+ typedef remove_reference< Stream >::type next_layer_type;
[heading Requirements]
-[*Header: ][^boost/asio/ssl/stream.hpp]
+['Header: ][^boost/asio/ssl/stream.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -85747,6 +92825,104 @@ Calls `SSL_set_verify`.
[endsect]
+[section:set_verify_depth ssl::stream::set_verify_depth]
+
+[indexterm2 set_verify_depth..ssl::stream]
+Set the peer verification depth.
+
+
+ void ``[link boost_asio.reference.ssl__stream.set_verify_depth.overload1 set_verify_depth]``(
+ int depth);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.set_verify_depth.overload1 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.ssl__stream.set_verify_depth.overload2 set_verify_depth]``(
+ int depth,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.set_verify_depth.overload2 more...]]``
+
+
+[section:overload1 ssl::stream::set_verify_depth (1 of 2 overloads)]
+
+
+Set the peer verification depth.
+
+
+ void set_verify_depth(
+ int depth);
+
+
+This function may be used to configure the maximum verification depth allowed by the stream.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[depth][Maximum depth for the certificate chain verification that shall be allowed.]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_set_verify_depth`.
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 ssl::stream::set_verify_depth (2 of 2 overloads)]
+
+
+Set the peer verification depth.
+
+
+ boost::system::error_code set_verify_depth(
+ int depth,
+ boost::system::error_code & ec);
+
+
+This function may be used to configure the maximum verification depth allowed by the stream.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[depth][Maximum depth for the certificate chain verification that shall be allowed.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
+
+]
+
+
+[heading Remarks]
+
+Calls `SSL_set_verify_depth`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
[section:set_verify_mode ssl::stream::set_verify_mode]
[indexterm2 set_verify_mode..ssl::stream]
@@ -86106,9 +93282,9 @@ Structure for use with deprecated impl\_type.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/stream.hpp]
+['Header: ][^boost/asio/ssl/stream.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[section:ssl ssl::stream::impl_struct::ssl]
@@ -86160,9 +93336,9 @@ The [link boost_asio.reference.ssl__stream_base `ssl::stream_base`] class is use
[heading Requirements]
-[*Header: ][^boost/asio/ssl/stream_base.hpp]
+['Header: ][^boost/asio/ssl/stream_base.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[section:handshake_type ssl::stream_base::handshake_type]
@@ -86225,9 +93401,9 @@ Do not request client certificate on renegotiation. Ignored unless [link boost_a
[heading Requirements]
-[*Header: ][^boost/asio/ssl/verify_mode.hpp]
+['Header: ][^boost/asio/ssl/verify_mode.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -86281,9 +93457,9 @@ The [link boost_asio.reference.ssl__verify_context `ssl::verify_context`] does n
[heading Requirements]
-[*Header: ][^boost/asio/ssl/verify_context.hpp]
+['Header: ][^boost/asio/ssl/verify_context.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[section:native_handle ssl::verify_context::native_handle]
@@ -86314,9 +93490,9 @@ The native handle type of the verification context.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/verify_context.hpp]
+['Header: ][^boost/asio/ssl/verify_context.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -86352,9 +93528,9 @@ Fail verification if the peer has no certificate. Ignored unless [link boost_asi
[heading Requirements]
-[*Header: ][^boost/asio/ssl/verify_mode.hpp]
+['Header: ][^boost/asio/ssl/verify_mode.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -86386,9 +93562,9 @@ Possible values are:
[heading Requirements]
-[*Header: ][^boost/asio/ssl/verify_mode.hpp]
+['Header: ][^boost/asio/ssl/verify_mode.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -86406,9 +93582,9 @@ No verification.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/verify_mode.hpp]
+['Header: ][^boost/asio/ssl/verify_mode.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -86426,9 +93602,9 @@ Verify the peer.
[heading Requirements]
-[*Header: ][^boost/asio/ssl/verify_mode.hpp]
+['Header: ][^boost/asio/ssl/verify_mode.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[endsect]
@@ -86582,7 +93758,7 @@ The [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] clas
A waitable timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
-Most applications will use the boost::asio::waitable\_timer typedef.
+Most applications will use one of the [link boost_asio.reference.steady_timer `steady_timer`], [link boost_asio.reference.system_timer `system_timer`] or [link boost_asio.reference.high_resolution_timer `high_resolution_timer`] typedefs.
[heading Remarks]
@@ -86592,20 +93768,20 @@ This waitable timer functionality is for use with the C++11 standard library's `
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Examples]
-Performing a blocking wait:
+Performing a blocking wait (C++11):
// Construct a timer without setting an expiry time.
- boost::asio::waitable_timer timer(io_service);
+ boost::asio::steady_timer timer(io_service);
// Set an expiry time relative to now.
- timer.expires_from_now(boost::posix_time::seconds(5));
+ timer.expires_from_now(std::chrono::seconds(5));
// Wait for the timer to expire.
timer.wait();
@@ -86614,7 +93790,7 @@ Performing a blocking wait:
-Performing an asynchronous wait:
+Performing an asynchronous wait (C++11):
void handler(const boost::system::error_code& error)
{
@@ -86627,8 +93803,8 @@ Performing an asynchronous wait:
...
// Construct a timer with an absolute expiry time.
- boost::asio::waitable_timer timer(io_service,
- boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
+ boost::asio::steady_timer timer(io_service,
+ std::chrono::steady_clock::now() + std::chrono::seconds(60));
// Start an asynchronous wait.
timer.async_wait(handler);
@@ -86637,7 +93813,7 @@ Performing an asynchronous wait:
-[heading Changing an active waitable_timer's expiry time]
+[heading Changing an active waitable timer's expiry time]
@@ -86687,9 +93863,9 @@ This typedef uses the C++11 `<chrono>` standard library facility, if available.
[heading Requirements]
-[*Header: ][^boost/asio/steady_timer.hpp]
+['Header: ][^boost/asio/steady_timer.hpp]
-[*Convenience header: ]None
+['Convenience header: ]None
[endsect]
@@ -86699,7 +93875,7 @@ This typedef uses the C++11 `<chrono>` standard library facility, if available.
[section:strand strand]
[indexterm1 strand]
-Typedef for backwards compatibility.
+(Deprecated: Use [link boost_asio.reference.io_service__strand `io_service::strand`].) Typedef for backwards compatibility.
typedef boost::asio::io_service::strand strand;
@@ -86725,6 +93901,11 @@ Typedef for backwards compatibility.
]
[
+ [[link boost_asio.reference.io_service__strand.running_in_this_thread [*running_in_this_thread]]]
+ [Determine whether the strand is running in the current thread. ]
+ ]
+
+ [
[[link boost_asio.reference.io_service__strand.strand [*strand]]]
[Constructor. ]
]
@@ -86788,11 +93969,16 @@ Note that in the following case:
the completion of the first async operation will perform `s.dispatch(a)`, and the second will perform `s.dispatch(b)`, but the order in which those are performed is unspecified. That is, you cannot state whether one happens-before the other. Therefore none of the above conditions are met and no ordering guarantee is made.
+[heading Remarks]
+
+The implementation makes no guarantee that handlers posted or dispatched through different `strand` objects will be invoked concurrently.
+
+
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Safe.
+['Shared] ['objects:] Safe.
@@ -86800,9 +93986,9 @@ the completion of the first async operation will perform `s.dispatch(a)`, and th
[heading Requirements]
-[*Header: ][^boost/asio/strand.hpp]
+['Header: ][^boost/asio/strand.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -86921,6 +94107,11 @@ Default service implementation for a stream socket.
]
[
+ [[link boost_asio.reference.stream_socket_service.converting_move_construct [*converting_move_construct]]]
+ [Move-construct a new stream socket implementation from another protocol type. ]
+ ]
+
+ [
[[link boost_asio.reference.stream_socket_service.destroy [*destroy]]]
[Destroy a stream socket implementation. ]
]
@@ -87034,9 +94225,9 @@ Default service implementation for a stream socket.
[heading Requirements]
-[*Header: ][^boost/asio/stream_socket_service.hpp]
+['Header: ][^boost/asio/stream_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign stream_socket_service::assign]
@@ -87065,7 +94256,7 @@ Start an asynchronous connect.
template<
typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_connect(
implementation_type & impl,
const endpoint_type & peer_endpoint,
ConnectHandler handler);
@@ -87085,7 +94276,7 @@ Start an asynchronous receive.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_receive(
implementation_type & impl,
const MutableBufferSequence & buffers,
socket_base::message_flags flags,
@@ -87106,7 +94297,7 @@ Start an asynchronous send.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_send(
implementation_type & impl,
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
@@ -87231,6 +94422,25 @@ Construct a new stream socket implementation.
+[section:converting_move_construct stream_socket_service::converting_move_construct]
+
+[indexterm2 converting_move_construct..stream_socket_service]
+Move-construct a new stream socket implementation from another protocol type.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol1]``>
+ void converting_move_construct(
+ implementation_type & impl,
+ typename stream_socket_service< Protocol1 >::implementation_type & other_impl,
+ typename enable_if< is_convertible< Protocol1, Protocol >::value >::type * = 0);
+
+
+
+[endsect]
+
+
+
[section:destroy stream_socket_service::destroy]
[indexterm2 destroy..stream_socket_service]
@@ -87258,9 +94468,9 @@ The endpoint type.
[heading Requirements]
-[*Header: ][^boost/asio/stream_socket_service.hpp]
+['Header: ][^boost/asio/stream_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -87329,9 +94539,9 @@ The type of a stream socket implementation.
[heading Requirements]
-[*Header: ][^boost/asio/stream_socket_service.hpp]
+['Header: ][^boost/asio/stream_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -87463,9 +94673,9 @@ The native socket type.
[heading Requirements]
-[*Header: ][^boost/asio/stream_socket_service.hpp]
+['Header: ][^boost/asio/stream_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -87538,9 +94748,9 @@ Sets the non-blocking mode of the native socket implementation.
[heading Requirements]
-[*Header: ][^boost/asio/stream_socket_service.hpp]
+['Header: ][^boost/asio/stream_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -87630,9 +94840,9 @@ The protocol type.
[heading Requirements]
-[*Header: ][^boost/asio/stream_socket_service.hpp]
+['Header: ][^boost/asio/stream_socket_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -87901,9 +95111,9 @@ Reading from a socket directly into a streambuf:
[heading Requirements]
-[*Header: ][^boost/asio/streambuf.hpp]
+['Header: ][^boost/asio/streambuf.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -88057,7 +95267,7 @@ The [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] clas
A waitable timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
-Most applications will use the boost::asio::waitable\_timer typedef.
+Most applications will use one of the [link boost_asio.reference.steady_timer `steady_timer`], [link boost_asio.reference.system_timer `system_timer`] or [link boost_asio.reference.high_resolution_timer `high_resolution_timer`] typedefs.
[heading Remarks]
@@ -88067,20 +95277,20 @@ This waitable timer functionality is for use with the C++11 standard library's `
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Examples]
-Performing a blocking wait:
+Performing a blocking wait (C++11):
// Construct a timer without setting an expiry time.
- boost::asio::waitable_timer timer(io_service);
+ boost::asio::steady_timer timer(io_service);
// Set an expiry time relative to now.
- timer.expires_from_now(boost::posix_time::seconds(5));
+ timer.expires_from_now(std::chrono::seconds(5));
// Wait for the timer to expire.
timer.wait();
@@ -88089,7 +95299,7 @@ Performing a blocking wait:
-Performing an asynchronous wait:
+Performing an asynchronous wait (C++11):
void handler(const boost::system::error_code& error)
{
@@ -88102,8 +95312,8 @@ Performing an asynchronous wait:
...
// Construct a timer with an absolute expiry time.
- boost::asio::waitable_timer timer(io_service,
- boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
+ boost::asio::steady_timer timer(io_service,
+ std::chrono::steady_clock::now() + std::chrono::seconds(60));
// Start an asynchronous wait.
timer.async_wait(handler);
@@ -88112,7 +95322,7 @@ Performing an asynchronous wait:
-[heading Changing an active waitable_timer's expiry time]
+[heading Changing an active waitable timer's expiry time]
@@ -88162,9 +95372,9 @@ This typedef uses the C++11 `<chrono>` standard library facility, if available.
[heading Requirements]
-[*Header: ][^boost/asio/system_timer.hpp]
+['Header: ][^boost/asio/system_timer.hpp]
-[*Convenience header: ]None
+['Convenience header: ]None
[endsect]
@@ -88233,9 +95443,9 @@ Time traits specialised for posix\_time.
[heading Requirements]
-[*Header: ][^boost/asio/time_traits.hpp]
+['Header: ][^boost/asio/time_traits.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:add time_traits< boost::posix_time::ptime >::add]
@@ -88266,9 +95476,9 @@ The duration type.
[heading Requirements]
-[*Header: ][^boost/asio/time_traits.hpp]
+['Header: ][^boost/asio/time_traits.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -88333,9 +95543,9 @@ The time type.
[heading Requirements]
-[*Header: ][^boost/asio/time_traits.hpp]
+['Header: ][^boost/asio/time_traits.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -88397,9 +95607,9 @@ Reading until a buffer is full:
[heading Requirements]
-[*Header: ][^boost/asio/completion_condition.hpp]
+['Header: ][^boost/asio/completion_condition.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -88444,9 +95654,9 @@ Reading until a buffer is full or contains at least 64 bytes:
[heading Requirements]
-[*Header: ][^boost/asio/completion_condition.hpp]
+['Header: ][^boost/asio/completion_condition.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -88491,15 +95701,205 @@ Reading until a buffer is full or contains exactly 64 bytes:
[heading Requirements]
-[*Header: ][^boost/asio/completion_condition.hpp]
+['Header: ][^boost/asio/completion_condition.hpp]
+
+['Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:use_future use_future]
+
+[indexterm1 use_future]
+A special value, similar to std::nothrow.
+
+
+ constexpr use_future_t use_future;
+
+
+See the documentation for [link boost_asio.reference.use_future_t `use_future_t`] for a usage example.
+
+[heading Requirements]
+
+['Header: ][^boost/asio/use_future.hpp]
+
+['Convenience header: ]None
+
+
+[endsect]
+
+
+[section:use_future_t use_future_t]
+
+
+Class used to specify that an asynchronous operation should return a future.
+
+
+ template<
+ typename Allocator = std::allocator<void>>
+ class use_future_t
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.use_future_t.allocator_type [*allocator_type]]]
+ [The allocator type. The allocator is used when constructing the std::promise object for a given asynchronous operation. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.use_future_t.get_allocator [*get_allocator]]]
+ [Obtain allocator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.use_future_t.operator_lb__rb_ [*operator\[\]]]]
+ [Specify an alternate allocator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.use_future_t.use_future_t [*use_future_t]]]
+ [Construct using default-constructed allocator.
+
+ Construct using specified allocator. ]
+ ]
+
+]
+
+The [link boost_asio.reference.use_future_t `use_future_t`] class is used to indicate that an asynchronous operation should return a std::future object. A [link boost_asio.reference.use_future_t `use_future_t`] object may be passed as a handler to an asynchronous operation, typically using the special value `boost::asio::use_future`. For example:
+
+
+
+ std::future<std::size_t> my_future
+ = my_socket.async_read_some(my_buffer, boost::asio::use_future);
+
+
+
+
+The initiating function (async\_read\_some in the above example) returns a future that will receive the result of the operation. If the operation completes with an error\_code indicating failure, it is converted into a system\_error and passed back to the caller via the future.
+
+[heading Requirements]
+
+['Header: ][^boost/asio/use_future.hpp]
+
+['Convenience header: ]None
+
+
+[section:allocator_type use_future_t::allocator_type]
+
+[indexterm2 allocator_type..use_future_t]
+The allocator type. The allocator is used when constructing the `std::promise` object for a given asynchronous operation.
+
+
+ typedef Allocator allocator_type;
+
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/use_future.hpp]
+
+['Convenience header: ]None
+
+
+[endsect]
+
+
+
+[section:get_allocator use_future_t::get_allocator]
+
+[indexterm2 get_allocator..use_future_t]
+Obtain allocator.
+
+
+ allocator_type get_allocator() const;
-[*Convenience header: ][^boost/asio.hpp]
[endsect]
+[section:operator_lb__rb_ use_future_t::operator\[\]]
+
+[indexterm2 operator\[\]..use_future_t]
+Specify an alternate allocator.
+
+
+ template<
+ typename OtherAllocator>
+ use_future_t< OtherAllocator > operator[](
+ const OtherAllocator & allocator) const;
+
+
+
+[endsect]
+
+
+[section:use_future_t use_future_t::use_future_t]
+
+[indexterm2 use_future_t..use_future_t]
+Construct using default-constructed allocator.
+
+
+ constexpr ``[link boost_asio.reference.use_future_t.use_future_t.overload1 use_future_t]``();
+ `` [''''&raquo;''' [link boost_asio.reference.use_future_t.use_future_t.overload1 more...]]``
+
+
+Construct using specified allocator.
+
+
+ explicit ``[link boost_asio.reference.use_future_t.use_future_t.overload2 use_future_t]``(
+ const Allocator & allocator);
+ `` [''''&raquo;''' [link boost_asio.reference.use_future_t.use_future_t.overload2 more...]]``
+
+
+[section:overload1 use_future_t::use_future_t (1 of 2 overloads)]
+
+
+Construct using default-constructed allocator.
+
+
+ constexpr use_future_t();
+
+
+
+[endsect]
+
+
+
+[section:overload2 use_future_t::use_future_t (2 of 2 overloads)]
+
+
+Construct using specified allocator.
+
+
+ use_future_t(
+ const Allocator & allocator);
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[endsect]
+
+
[section:use_service use_service]
[indexterm1 use_service]
@@ -88531,9 +95931,9 @@ The service interface implementing the specified service type. Ownership of the
[heading Requirements]
-[*Header: ][^boost/asio/io_service.hpp]
+['Header: ][^boost/asio/io_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -88563,9 +95963,9 @@ Wait traits suitable for use with the [link boost_asio.reference.basic_waitable_
[heading Requirements]
-[*Header: ][^boost/asio/wait_traits.hpp]
+['Header: ][^boost/asio/wait_traits.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:to_wait_duration wait_traits::to_wait_duration]
@@ -88719,9 +96119,9 @@ Default service implementation for a timer.
[heading Requirements]
-[*Header: ][^boost/asio/waitable_timer_service.hpp]
+['Header: ][^boost/asio/waitable_timer_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:async_wait waitable_timer_service::async_wait]
@@ -88730,7 +96130,7 @@ Default service implementation for a timer.
template<
typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
- void async_wait(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_wait(
implementation_type & impl,
WaitHandler handler);
@@ -88784,9 +96184,9 @@ The clock type.
[heading Requirements]
-[*Header: ][^boost/asio/waitable_timer_service.hpp]
+['Header: ][^boost/asio/waitable_timer_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -88835,9 +96235,9 @@ The duration type of the clock.
[heading Requirements]
-[*Header: ][^boost/asio/waitable_timer_service.hpp]
+['Header: ][^boost/asio/waitable_timer_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -88995,9 +96395,9 @@ The implementation type of the waitable timer.
[heading Requirements]
-[*Header: ][^boost/asio/waitable_timer_service.hpp]
+['Header: ][^boost/asio/waitable_timer_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -89016,9 +96416,9 @@ The time point type of the clock.
[heading Requirements]
-[*Header: ][^boost/asio/waitable_timer_service.hpp]
+['Header: ][^boost/asio/waitable_timer_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -89037,9 +96437,9 @@ The wait traits type.
[heading Requirements]
-[*Header: ][^boost/asio/waitable_timer_service.hpp]
+['Header: ][^boost/asio/waitable_timer_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -89234,17 +96634,17 @@ The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+['Header: ][^boost/asio/windows/basic_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign windows::basic_handle::assign]
@@ -89727,9 +97127,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+['Header: ][^boost/asio/windows/basic_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -89968,18 +97368,18 @@ The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+['Header: ][^boost/asio/windows/basic_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -90030,9 +97430,9 @@ The native representation of a handle.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+['Header: ][^boost/asio/windows/basic_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -90051,9 +97451,9 @@ The native representation of a handle.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+['Header: ][^boost/asio/windows/basic_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -90133,9 +97533,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+['Header: ][^boost/asio/windows/basic_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -90320,17 +97720,17 @@ The [link boost_asio.reference.windows__basic_object_handle `windows::basic_obje
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
+['Header: ][^boost/asio/windows/basic_object_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign windows::basic_object_handle::assign]
@@ -90395,7 +97795,7 @@ Start an asynchronous wait on the object handle.
template<
typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
- void async_wait(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_wait(
WaitHandler handler);
@@ -90868,9 +98268,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
+['Header: ][^boost/asio/windows/basic_object_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -91121,18 +98521,18 @@ The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
+['Header: ][^boost/asio/windows/basic_object_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -91189,9 +98589,9 @@ The native representation of a handle.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
+['Header: ][^boost/asio/windows/basic_object_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -91213,9 +98613,9 @@ The native representation of a handle.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
+['Header: ][^boost/asio/windows/basic_object_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -91295,9 +98695,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
+['Header: ][^boost/asio/windows/basic_object_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -91550,17 +98950,17 @@ The [link boost_asio.reference.windows__basic_random_access_handle `windows::bas
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
+['Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign windows::basic_random_access_handle::assign]
@@ -91626,8 +99026,8 @@ Start an asynchronous read at the specified offset.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some_at(
- boost::uint64_t offset,
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some_at(
+ uint64_t offset,
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -91686,8 +99086,8 @@ Start an asynchronous write at the specified offset.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some_at(
- boost::uint64_t offset,
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some_at(
+ uint64_t offset,
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -91774,7 +99174,7 @@ Construct a [link boost_asio.reference.windows__basic_random_access_handle `wind
boost::asio::io_service & io_service);
-This constructor creates a random-access handle without opening it. The handle needs to be opened before data can be written to or or read from it.
+This constructor creates a random-access handle without opening it. The handle needs to be opened before data can be written to or read from it.
[heading Parameters]
@@ -92181,9 +99581,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
+['Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -92434,18 +99834,18 @@ The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
+['Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -92502,9 +99902,9 @@ The native representation of a handle.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
+['Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -92523,9 +99923,9 @@ The native representation of a handle.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
+['Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -92574,14 +99974,14 @@ Read some data from the handle at the specified offset.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
std::size_t ``[link boost_asio.reference.windows__basic_random_access_handle.read_some_at.overload1 read_some_at]``(
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers);
`` [''''&raquo;''' [link boost_asio.reference.windows__basic_random_access_handle.read_some_at.overload1 more...]]``
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
std::size_t ``[link boost_asio.reference.windows__basic_random_access_handle.read_some_at.overload2 read_some_at]``(
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
boost::system::error_code & ec);
`` [''''&raquo;''' [link boost_asio.reference.windows__basic_random_access_handle.read_some_at.overload2 more...]]``
@@ -92596,7 +99996,7 @@ Read some data from the handle at the specified offset.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
std::size_t read_some_at(
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers);
@@ -92660,7 +100060,7 @@ Read some data from the handle at the specified offset.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
std::size_t read_some_at(
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
boost::system::error_code & ec);
@@ -92739,9 +100139,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
+['Header: ][^boost/asio/windows/basic_random_access_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -92756,14 +100156,14 @@ Write some data to the handle at the specified offset.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
std::size_t ``[link boost_asio.reference.windows__basic_random_access_handle.write_some_at.overload1 write_some_at]``(
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers);
`` [''''&raquo;''' [link boost_asio.reference.windows__basic_random_access_handle.write_some_at.overload1 more...]]``
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
std::size_t ``[link boost_asio.reference.windows__basic_random_access_handle.write_some_at.overload2 write_some_at]``(
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
boost::system::error_code & ec);
`` [''''&raquo;''' [link boost_asio.reference.windows__basic_random_access_handle.write_some_at.overload2 more...]]``
@@ -92778,7 +100178,7 @@ Write some data to the handle at the specified offset.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
std::size_t write_some_at(
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers);
@@ -92842,7 +100242,7 @@ Write some data to the handle at the specified offset.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
std::size_t write_some_at(
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
boost::system::error_code & ec);
@@ -93056,18 +100456,18 @@ The [link boost_asio.reference.windows__basic_stream_handle `windows::basic_stre
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_stream_handle.hpp]
+['Header: ][^boost/asio/windows/basic_stream_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign windows::basic_stream_handle::assign]
@@ -93133,7 +100533,7 @@ Start an asynchronous read.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some(
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -93190,7 +100590,7 @@ Start an asynchronous write.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some(
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -93682,9 +101082,9 @@ The underlying implementation type of I/O object.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_stream_handle.hpp]
+['Header: ][^boost/asio/windows/basic_stream_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -93935,18 +101335,18 @@ The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cl
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_stream_handle.hpp]
+['Header: ][^boost/asio/windows/basic_stream_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -94003,9 +101403,9 @@ The native representation of a handle.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_stream_handle.hpp]
+['Header: ][^boost/asio/windows/basic_stream_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -94024,9 +101424,9 @@ The native representation of a handle.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_stream_handle.hpp]
+['Header: ][^boost/asio/windows/basic_stream_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -94232,9 +101632,9 @@ The type of the service that will be used to provide I/O operations.
[heading Requirements]
-[*Header: ][^boost/asio/windows/basic_stream_handle.hpp]
+['Header: ][^boost/asio/windows/basic_stream_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -94529,18 +101929,18 @@ The [link boost_asio.reference.windows__basic_object_handle `windows::basic_obje
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/windows/object_handle.hpp]
+['Header: ][^boost/asio/windows/object_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -94660,9 +102060,9 @@ Default service implementation for an object handle.
[heading Requirements]
-[*Header: ][^boost/asio/windows/object_handle_service.hpp]
+['Header: ][^boost/asio/windows/object_handle_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign windows::object_handle_service::assign]
@@ -94690,7 +102090,7 @@ Start an asynchronous wait.
template<
typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
- void async_wait(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_wait(
implementation_type & impl,
WaitHandler handler);
@@ -94805,9 +102205,9 @@ The type of an object handle implementation.
[heading Requirements]
-[*Header: ][^boost/asio/windows/object_handle_service.hpp]
+['Header: ][^boost/asio/windows/object_handle_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -94889,9 +102289,9 @@ The native handle type.
[heading Requirements]
-[*Header: ][^boost/asio/windows/object_handle_service.hpp]
+['Header: ][^boost/asio/windows/object_handle_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -94984,17 +102384,17 @@ A special-purpose smart pointer used to wrap an application handler so that it c
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/windows/overlapped_ptr.hpp]
+['Header: ][^boost/asio/windows/overlapped_ptr.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:complete windows::overlapped_ptr::complete]
@@ -95363,18 +102763,18 @@ The [link boost_asio.reference.windows__basic_random_access_handle `windows::bas
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
[heading Requirements]
-[*Header: ][^boost/asio/windows/random_access_handle.hpp]
+['Header: ][^boost/asio/windows/random_access_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -95516,9 +102916,9 @@ Default service implementation for a random-access handle.
[heading Requirements]
-[*Header: ][^boost/asio/windows/random_access_handle_service.hpp]
+['Header: ][^boost/asio/windows/random_access_handle_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign windows::random_access_handle_service::assign]
@@ -95547,9 +102947,9 @@ Start an asynchronous read at the specified offset.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some_at(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some_at(
implementation_type & impl,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -95568,9 +102968,9 @@ Start an asynchronous write at the specified offset.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some_at(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some_at(
implementation_type & impl,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -95685,9 +103085,9 @@ The type of a random-access handle implementation.
[heading Requirements]
-[*Header: ][^boost/asio/windows/random_access_handle_service.hpp]
+['Header: ][^boost/asio/windows/random_access_handle_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -95784,9 +103184,9 @@ The native handle type.
[heading Requirements]
-[*Header: ][^boost/asio/windows/random_access_handle_service.hpp]
+['Header: ][^boost/asio/windows/random_access_handle_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -95805,9 +103205,9 @@ The native handle type.
[heading Requirements]
-[*Header: ][^boost/asio/windows/random_access_handle_service.hpp]
+['Header: ][^boost/asio/windows/random_access_handle_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -95839,7 +103239,7 @@ Read some data from the specified offset.
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
std::size_t read_some_at(
implementation_type & impl,
- boost::uint64_t offset,
+ uint64_t offset,
const MutableBufferSequence & buffers,
boost::system::error_code & ec);
@@ -95859,7 +103259,7 @@ Write the given data at the specified offset.
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
std::size_t write_some_at(
implementation_type & impl,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
boost::system::error_code & ec);
@@ -96041,9 +103441,9 @@ The [link boost_asio.reference.windows__basic_stream_handle `windows::basic_stre
[heading Thread Safety]
-[*Distinct] [*objects:] Safe.
+['Distinct] ['objects:] Safe.
-[*Shared] [*objects:] Unsafe.
+['Shared] ['objects:] Unsafe.
@@ -96051,9 +103451,9 @@ The [link boost_asio.reference.windows__basic_stream_handle `windows::basic_stre
[heading Requirements]
-[*Header: ][^boost/asio/windows/stream_handle.hpp]
+['Header: ][^boost/asio/windows/stream_handle.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -96195,9 +103595,9 @@ Default service implementation for a stream handle.
[heading Requirements]
-[*Header: ][^boost/asio/windows/stream_handle_service.hpp]
+['Header: ][^boost/asio/windows/stream_handle_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:assign windows::stream_handle_service::assign]
@@ -96226,7 +103626,7 @@ Start an asynchronous read.
template<
typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_read_some(
implementation_type & impl,
const MutableBufferSequence & buffers,
ReadHandler handler);
@@ -96246,7 +103646,7 @@ Start an asynchronous write.
template<
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
+ ``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]`` async_write_some(
implementation_type & impl,
const ConstBufferSequence & buffers,
WriteHandler handler);
@@ -96362,9 +103762,9 @@ The type of a stream handle implementation.
[heading Requirements]
-[*Header: ][^boost/asio/windows/stream_handle_service.hpp]
+['Header: ][^boost/asio/windows/stream_handle_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -96461,9 +103861,9 @@ The native handle type.
[heading Requirements]
-[*Header: ][^boost/asio/windows/stream_handle_service.hpp]
+['Header: ][^boost/asio/windows/stream_handle_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -96482,9 +103882,9 @@ The native handle type.
[heading Requirements]
-[*Header: ][^boost/asio/windows/stream_handle_service.hpp]
+['Header: ][^boost/asio/windows/stream_handle_service.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[endsect]
@@ -96630,9 +104030,9 @@ Write a certain amount of data to a stream before returning.
[heading Requirements]
-[*Header: ][^boost/asio/write.hpp]
+['Header: ][^boost/asio/write.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 write (1 of 8 overloads)]
@@ -97218,7 +104618,7 @@ Write a certain amount of data at a specified offset before returning.
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
std::size_t ``[link boost_asio.reference.write_at.overload1 write_at]``(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers);
`` [''''&raquo;''' [link boost_asio.reference.write_at.overload1 more...]]``
@@ -97227,7 +104627,7 @@ Write a certain amount of data at a specified offset before returning.
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
std::size_t ``[link boost_asio.reference.write_at.overload2 write_at]``(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
boost::system::error_code & ec);
`` [''''&raquo;''' [link boost_asio.reference.write_at.overload2 more...]]``
@@ -97238,7 +104638,7 @@ Write a certain amount of data at a specified offset before returning.
typename CompletionCondition>
std::size_t ``[link boost_asio.reference.write_at.overload3 write_at]``(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
CompletionCondition completion_condition);
`` [''''&raquo;''' [link boost_asio.reference.write_at.overload3 more...]]``
@@ -97249,7 +104649,7 @@ Write a certain amount of data at a specified offset before returning.
typename CompletionCondition>
std::size_t ``[link boost_asio.reference.write_at.overload4 write_at]``(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
CompletionCondition completion_condition,
boost::system::error_code & ec);
@@ -97260,7 +104660,7 @@ Write a certain amount of data at a specified offset before returning.
typename Allocator>
std::size_t ``[link boost_asio.reference.write_at.overload5 write_at]``(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b);
`` [''''&raquo;''' [link boost_asio.reference.write_at.overload5 more...]]``
@@ -97269,7 +104669,7 @@ Write a certain amount of data at a specified offset before returning.
typename Allocator>
std::size_t ``[link boost_asio.reference.write_at.overload6 write_at]``(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
boost::system::error_code & ec);
`` [''''&raquo;''' [link boost_asio.reference.write_at.overload6 more...]]``
@@ -97280,7 +104680,7 @@ Write a certain amount of data at a specified offset before returning.
typename CompletionCondition>
std::size_t ``[link boost_asio.reference.write_at.overload7 write_at]``(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition);
`` [''''&raquo;''' [link boost_asio.reference.write_at.overload7 more...]]``
@@ -97291,7 +104691,7 @@ Write a certain amount of data at a specified offset before returning.
typename CompletionCondition>
std::size_t ``[link boost_asio.reference.write_at.overload8 write_at]``(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
boost::system::error_code & ec);
@@ -97299,9 +104699,9 @@ Write a certain amount of data at a specified offset before returning.
[heading Requirements]
-[*Header: ][^boost/asio/write_at.hpp]
+['Header: ][^boost/asio/write_at.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:overload1 write_at (1 of 8 overloads)]
@@ -97315,7 +104715,7 @@ Write all of the supplied data at the specified offset before returning.
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
std::size_t write_at(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers);
@@ -97398,7 +104798,7 @@ Write all of the supplied data at the specified offset before returning.
typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
std::size_t write_at(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
boost::system::error_code & ec);
@@ -97476,7 +104876,7 @@ Write a certain amount of data at a specified offset before returning.
typename CompletionCondition>
std::size_t write_at(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
CompletionCondition completion_condition);
@@ -97562,7 +104962,7 @@ Write a certain amount of data at a specified offset before returning.
typename CompletionCondition>
std::size_t write_at(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
const ConstBufferSequence & buffers,
CompletionCondition completion_condition,
boost::system::error_code & ec);
@@ -97629,7 +105029,7 @@ Write all of the supplied data at the specified offset before returning.
typename Allocator>
std::size_t write_at(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b);
@@ -97702,7 +105102,7 @@ Write all of the supplied data at the specified offset before returning.
typename Allocator>
std::size_t write_at(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
boost::system::error_code & ec);
@@ -97769,7 +105169,7 @@ Write a certain amount of data at a specified offset before returning.
typename CompletionCondition>
std::size_t write_at(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition);
@@ -97844,7 +105244,7 @@ Write a certain amount of data at a specified offset before returning.
typename CompletionCondition>
std::size_t write_at(
SyncRandomAccessWriteDevice & d,
- boost::uint64_t offset,
+ uint64_t offset,
basic_streambuf< Allocator > & b,
CompletionCondition completion_condition,
boost::system::error_code & ec);
@@ -97901,6 +105301,80 @@ The number of bytes written. If an error occurs, returns the total number of byt
[endsect]
+
+[section:yield_context yield_context]
+
+[indexterm1 yield_context]
+Context object that represents the currently executing coroutine.
+
+
+ typedef basic_yield_context< unspecified > yield_context;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_yield_context.callee_type [*callee_type]]]
+ [The coroutine callee type, used by the implementation. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_yield_context.caller_type [*caller_type]]]
+ [The coroutine caller type, used by the implementation. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_yield_context.basic_yield_context [*basic_yield_context]]]
+ [Construct a yield context to represent the specified coroutine. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_yield_context.operator_lb__rb_ [*operator\[\]]]]
+ [Return a yield context that sets the specified error_code. ]
+ ]
+
+]
+
+The [link boost_asio.reference.basic_yield_context `basic_yield_context`] class is used to represent the currently executing stackful coroutine. A [link boost_asio.reference.basic_yield_context `basic_yield_context`] may be passed as a handler to an asynchronous operation. For example:
+
+
+
+ template <typename Handler>
+ void my_coroutine(basic_yield_context<Handler> yield)
+ {
+ ...
+ std::size_t n = my_socket.async_read_some(buffer, yield);
+ ...
+ }
+
+
+
+
+The initiating function (async\_read\_some in the above example) suspends the current coroutine. The coroutine is resumed when the asynchronous operation completes, and the result of the operation is returned.
+
+
+[heading Requirements]
+
+['Header: ][^boost/asio/spawn.hpp]
+
+['Convenience header: ]None
+
+
+[endsect]
+
+
[section:is_error_code_enum_lt__addrinfo_errors__gt_ boost::system::is_error_code_enum< boost::asio::error::addrinfo_errors >]
@@ -97922,9 +105396,9 @@ The number of bytes written. If an error occurs, returns the total number of byt
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:value boost::system::is_error_code_enum< boost::asio::error::addrinfo_errors >::value]
@@ -97962,9 +105436,9 @@ The number of bytes written. If an error occurs, returns the total number of byt
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:value boost::system::is_error_code_enum< boost::asio::error::basic_errors >::value]
@@ -98002,9 +105476,9 @@ The number of bytes written. If an error occurs, returns the total number of byt
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:value boost::system::is_error_code_enum< boost::asio::error::misc_errors >::value]
@@ -98042,9 +105516,9 @@ The number of bytes written. If an error occurs, returns the total number of byt
[heading Requirements]
-[*Header: ][^boost/asio/error.hpp]
+['Header: ][^boost/asio/error.hpp]
-[*Convenience header: ][^boost/asio.hpp]
+['Convenience header: ][^boost/asio.hpp]
[section:value boost::system::is_error_code_enum< boost::asio::error::netdb_errors >::value]
@@ -98082,9 +105556,9 @@ The number of bytes written. If an error occurs, returns the total number of byt
[heading Requirements]
-[*Header: ][^boost/asio/ssl/error.hpp]
+['Header: ][^boost/asio/ssl/error.hpp]
-[*Convenience header: ][^boost/asio/ssl.hpp]
+['Convenience header: ][^boost/asio/ssl.hpp]
[section:value boost::system::is_error_code_enum< boost::asio::error::ssl_errors >::value]
diff --git a/libs/asio/doc/reference.xsl b/libs/asio/doc/reference.xsl
index 10cdc7c7b9..745584c13e 100644
--- a/libs/asio/doc/reference.xsl
+++ b/libs/asio/doc/reference.xsl
@@ -2,7 +2,7 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!--
- Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ Copyright (c) 2003-2014 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)
@@ -26,7 +26,7 @@
-->
<xsl:template match="/doxygen">
<xsl:text>[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -42,6 +42,7 @@
[include requirements/AsyncRandomAccessWriteDevice.qbk]
[include requirements/AsyncReadStream.qbk]
[include requirements/AsyncWriteStream.qbk]
+[include requirements/BufferedHandshakeHandler.qbk]
[include requirements/CompletionHandler.qbk]
[include requirements/ComposedConnectHandler.qbk]
[include requirements/ConnectHandler.qbk]
@@ -177,17 +178,27 @@
<xsl:template name="cleanup-type">
<xsl:param name="name"/>
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="contains($name, 'BOOST_ASIO_DECL ')">
+ <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL ')"/>
+ </xsl:when>
+ <xsl:when test="contains($name, 'BOOST_ASIO_DECL')">
+ <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL')"/>
+ </xsl:when>
+ <xsl:when test="$name = 'virtual'"></xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
<xsl:choose>
- <xsl:when test="contains($name, 'BOOST_ASIO_DECL ')">
- <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL ')"/>
- </xsl:when>
- <xsl:when test="contains($name, 'BOOST_ASIO_DECL')">
- <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL')"/>
- </xsl:when>
- <xsl:when test="$name = 'virtual'"></xsl:when>
+ <xsl:when test="$type='void_or_deduced'">
+ <xsl:text>``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]``</xsl:text>
+ </xsl:when>
<xsl:otherwise>
- <xsl:value-of select="$name"/>
- </xsl:otherwise>
+ <xsl:value-of select="$type"/>
+ </xsl:otherwise>
</xsl:choose>
</xsl:template>
@@ -413,7 +424,10 @@
</xsl:template>
-<xsl:template match="emphasis" mode="markup">[*<xsl:value-of select="."/>]</xsl:template>
+<xsl:template match="bold" mode="markup">[*<xsl:apply-templates mode="markup"/>]</xsl:template>
+
+
+<xsl:template match="emphasis" mode="markup">['<xsl:apply-templates mode="markup"/>]</xsl:template>
<xsl:template match="parameterlist" mode="markup">
@@ -724,13 +738,13 @@
<xsl:text>[heading Requirements]</xsl:text>
<xsl:value-of select="$newline"/>
<xsl:value-of select="$newline"/>
- <xsl:text>[*Header: ]</xsl:text>
+ <xsl:text>['Header: ]</xsl:text>
<xsl:text>[^boost/asio/</xsl:text>
<xsl:value-of select="substring-after($file, 'boost/asio/')"/>
<xsl:text>]</xsl:text>
<xsl:value-of select="$newline"/>
<xsl:value-of select="$newline"/>
- <xsl:text>[*Convenience header: ]</xsl:text>
+ <xsl:text>['Convenience header: ]</xsl:text>
<xsl:choose>
<xsl:when test="contains($file, 'boost/asio/ssl')">
<xsl:text>[^boost/asio/ssl.hpp]</xsl:text>
@@ -738,12 +752,18 @@
<xsl:when test="contains($file, 'boost/asio/high_resolution_timer')">
<xsl:text>None</xsl:text>
</xsl:when>
+ <xsl:when test="contains($file, 'boost/asio/spawn')">
+ <xsl:text>None</xsl:text>
+ </xsl:when>
<xsl:when test="contains($file, 'boost/asio/steady_timer')">
<xsl:text>None</xsl:text>
</xsl:when>
<xsl:when test="contains($file, 'boost/asio/system_timer')">
<xsl:text>None</xsl:text>
</xsl:when>
+ <xsl:when test="contains($file, 'boost/asio/use_future')">
+ <xsl:text>None</xsl:text>
+ </xsl:when>
<xsl:otherwise>
<xsl:text>[^boost/asio.hpp]</xsl:text>
</xsl:otherwise>
@@ -1429,6 +1449,12 @@
<xsl:when test="declname = 'Context_Service'">
<xsl:value-of select="declname"/>
</xsl:when>
+ <xsl:when test="declname = 'DatagramSocketService1'">
+ <xsl:value-of select="concat('``[link boost_asio.reference.DatagramSocketService ', declname, ']``')"/>
+ </xsl:when>
+ <xsl:when test="declname = 'EndpointIterator'">
+ <xsl:value-of select="declname"/>
+ </xsl:when>
<xsl:when test="declname = 'Elem'">
<xsl:value-of select="declname"/>
</xsl:when>
@@ -1447,6 +1473,9 @@
<xsl:when test="declname = 'N'">
<xsl:value-of select="declname"/>
</xsl:when>
+ <xsl:when test="declname = 'OtherAllocator'">
+ <xsl:value-of select="declname"/>
+ </xsl:when>
<xsl:when test="declname = 'PasswordCallback'">
<xsl:value-of select="declname"/>
</xsl:when>
@@ -1456,12 +1485,30 @@
<xsl:when test="declname = 'PointerToPodType'">
<xsl:value-of select="declname"/>
</xsl:when>
+ <xsl:when test="declname = 'Protocol1'">
+ <xsl:value-of select="concat('``[link boost_asio.reference.Protocol ', declname, ']``')"/>
+ </xsl:when>
+ <xsl:when test="declname = 'RawSocketService1'">
+ <xsl:value-of select="concat('``[link boost_asio.reference.RawSocketService ', declname, ']``')"/>
+ </xsl:when>
+ <xsl:when test="declname = 'SeqPacketSocketService1'">
+ <xsl:value-of select="concat('``[link boost_asio.reference.SeqPacketSocketService ', declname, ']``')"/>
+ </xsl:when>
+ <xsl:when test="declname = 'Signature'">
+ <xsl:value-of select="declname"/>
+ </xsl:when>
+ <xsl:when test="declname = 'SocketAcceptorService1' or declname = 'SocketAcceptorService2'">
+ <xsl:value-of select="concat('``[link boost_asio.reference.SocketAcceptorService ', declname, ']``')"/>
+ </xsl:when>
<xsl:when test="declname = 'SocketService1' or declname = 'SocketService2'">
<xsl:value-of select="concat('``[link boost_asio.reference.SocketService ', declname, ']``')"/>
</xsl:when>
<xsl:when test="declname = 'Stream'">
<xsl:value-of select="declname"/>
</xsl:when>
+ <xsl:when test="declname = 'StreamSocketService1'">
+ <xsl:value-of select="concat('``[link boost_asio.reference.StreamSocketService ', declname, ']``')"/>
+ </xsl:when>
<xsl:when test="declname = 'T'">
<xsl:value-of select="declname"/>
</xsl:when>
diff --git a/libs/asio/doc/requirements.qbk b/libs/asio/doc/requirements.qbk
index 3dbae38d47..0263aabd8d 100644
--- a/libs/asio/doc/requirements.qbk
+++ b/libs/asio/doc/requirements.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/AcceptHandler.qbk b/libs/asio/doc/requirements/AcceptHandler.qbk
index ab656383fd..021e3d7f49 100644
--- a/libs/asio/doc/requirements/AcceptHandler.qbk
+++ b/libs/asio/doc/requirements/AcceptHandler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/AsyncRandomAccessReadDevice.qbk b/libs/asio/doc/requirements/AsyncRandomAccessReadDevice.qbk
index 1a1887807b..8279e5c9d4 100644
--- a/libs/asio/doc/requirements/AsyncRandomAccessReadDevice.qbk
+++ b/libs/asio/doc/requirements/AsyncRandomAccessReadDevice.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/AsyncRandomAccessWriteDevice.qbk b/libs/asio/doc/requirements/AsyncRandomAccessWriteDevice.qbk
index 830d4f4eec..edc2f9fd48 100644
--- a/libs/asio/doc/requirements/AsyncRandomAccessWriteDevice.qbk
+++ b/libs/asio/doc/requirements/AsyncRandomAccessWriteDevice.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/AsyncReadStream.qbk b/libs/asio/doc/requirements/AsyncReadStream.qbk
index 5878048dc8..cd881ae41b 100644
--- a/libs/asio/doc/requirements/AsyncReadStream.qbk
+++ b/libs/asio/doc/requirements/AsyncReadStream.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/AsyncWriteStream.qbk b/libs/asio/doc/requirements/AsyncWriteStream.qbk
index 3e0b76d4ca..a61bbf234e 100644
--- a/libs/asio/doc/requirements/AsyncWriteStream.qbk
+++ b/libs/asio/doc/requirements/AsyncWriteStream.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/BufferedHandshakeHandler.qbk b/libs/asio/doc/requirements/BufferedHandshakeHandler.qbk
new file mode 100644
index 0000000000..282c39ef8d
--- /dev/null
+++ b/libs/asio/doc/requirements/BufferedHandshakeHandler.qbk
@@ -0,0 +1,54 @@
+[/
+ / Copyright (c) 2003-2014 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)
+ /]
+
+[section:BufferedHandshakeHandler Buffered handshake handler requirements]
+
+A buffered handshake handler must meet the requirements for a [link
+boost_asio.reference.Handler handler]. A value `h` of a buffered handshake handler
+class should work correctly in the expression `h(ec, s)`, where `ec` is an
+lvalue of type `const error_code` and `s` is an lvalue of type `const size_t`.
+
+[heading Examples]
+
+A free function as a buffered handshake handler:
+
+ void handshake_handler(
+ const boost::system::error_code& ec,
+ std::size_t bytes_transferred)
+ {
+ ...
+ }
+
+A buffered handshake handler function object:
+
+ struct handshake_handler
+ {
+ ...
+ void operator()(
+ const boost::system::error_code& ec,
+ std::size_t bytes_transferred)
+ {
+ ...
+ }
+ ...
+ };
+
+A non-static class member function adapted to a buffered handshake handler using `bind()`:
+
+ void my_class::handshake_handler(
+ const boost::system::error_code& ec,
+ std::size_t bytes_transferred)
+ {
+ ...
+ }
+ ...
+ socket.async_handshake(...,
+ boost::bind(&my_class::handshake_handler,
+ this, boost::asio::placeholders::error,
+ boost::asio::placeholders::bytes_transferred));
+
+[endsect]
diff --git a/libs/asio/doc/requirements/CompletionHandler.qbk b/libs/asio/doc/requirements/CompletionHandler.qbk
index 9825d90c74..8207711b4e 100644
--- a/libs/asio/doc/requirements/CompletionHandler.qbk
+++ b/libs/asio/doc/requirements/CompletionHandler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/ComposedConnectHandler.qbk b/libs/asio/doc/requirements/ComposedConnectHandler.qbk
index e396b2522f..e3fb5a96ce 100644
--- a/libs/asio/doc/requirements/ComposedConnectHandler.qbk
+++ b/libs/asio/doc/requirements/ComposedConnectHandler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/ConnectHandler.qbk b/libs/asio/doc/requirements/ConnectHandler.qbk
index 26ae272fee..3161815617 100644
--- a/libs/asio/doc/requirements/ConnectHandler.qbk
+++ b/libs/asio/doc/requirements/ConnectHandler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/ConstBufferSequence.qbk b/libs/asio/doc/requirements/ConstBufferSequence.qbk
index f709466191..4e72d12d75 100644
--- a/libs/asio/doc/requirements/ConstBufferSequence.qbk
+++ b/libs/asio/doc/requirements/ConstBufferSequence.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk b/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk
index 5667f47e5e..50766e67b4 100644
--- a/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk
+++ b/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk b/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk
index 8b3278b02a..50fd7ca759 100644
--- a/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk
+++ b/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/DatagramSocketService.qbk b/libs/asio/doc/requirements/DatagramSocketService.qbk
index de033b1142..eadbf12023 100644
--- a/libs/asio/doc/requirements/DatagramSocketService.qbk
+++ b/libs/asio/doc/requirements/DatagramSocketService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/DescriptorService.qbk b/libs/asio/doc/requirements/DescriptorService.qbk
index 2c3cebd01d..cdb848887c 100644
--- a/libs/asio/doc/requirements/DescriptorService.qbk
+++ b/libs/asio/doc/requirements/DescriptorService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/Endpoint.qbk b/libs/asio/doc/requirements/Endpoint.qbk
index 9207eb31e3..2249d0a776 100644
--- a/libs/asio/doc/requirements/Endpoint.qbk
+++ b/libs/asio/doc/requirements/Endpoint.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/GettableSerialPortOption.qbk b/libs/asio/doc/requirements/GettableSerialPortOption.qbk
index d227e91486..87051dda06 100644
--- a/libs/asio/doc/requirements/GettableSerialPortOption.qbk
+++ b/libs/asio/doc/requirements/GettableSerialPortOption.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/GettableSocketOption.qbk b/libs/asio/doc/requirements/GettableSocketOption.qbk
index f735d60df0..488333ba4b 100644
--- a/libs/asio/doc/requirements/GettableSocketOption.qbk
+++ b/libs/asio/doc/requirements/GettableSocketOption.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/HandleService.qbk b/libs/asio/doc/requirements/HandleService.qbk
index c27c22855f..c86041ade2 100644
--- a/libs/asio/doc/requirements/HandleService.qbk
+++ b/libs/asio/doc/requirements/HandleService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/Handler.qbk b/libs/asio/doc/requirements/Handler.qbk
index e6fe3dc9a7..247cf1acdc 100644
--- a/libs/asio/doc/requirements/Handler.qbk
+++ b/libs/asio/doc/requirements/Handler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/HandshakeHandler.qbk b/libs/asio/doc/requirements/HandshakeHandler.qbk
index 2b130fd257..6145ca9e0f 100644
--- a/libs/asio/doc/requirements/HandshakeHandler.qbk
+++ b/libs/asio/doc/requirements/HandshakeHandler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/InternetProtocol.qbk b/libs/asio/doc/requirements/InternetProtocol.qbk
index dcd2f1c96e..28a0ccc26e 100644
--- a/libs/asio/doc/requirements/InternetProtocol.qbk
+++ b/libs/asio/doc/requirements/InternetProtocol.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/IoControlCommand.qbk b/libs/asio/doc/requirements/IoControlCommand.qbk
index 8a4f7a99fe..b6886e023a 100644
--- a/libs/asio/doc/requirements/IoControlCommand.qbk
+++ b/libs/asio/doc/requirements/IoControlCommand.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/IoObjectService.qbk b/libs/asio/doc/requirements/IoObjectService.qbk
index a4afd05724..6bfbd2c21b 100644
--- a/libs/asio/doc/requirements/IoObjectService.qbk
+++ b/libs/asio/doc/requirements/IoObjectService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/MutableBufferSequence.qbk b/libs/asio/doc/requirements/MutableBufferSequence.qbk
index 4b9ad531b9..11fd16ee80 100644
--- a/libs/asio/doc/requirements/MutableBufferSequence.qbk
+++ b/libs/asio/doc/requirements/MutableBufferSequence.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/ObjectHandleService.qbk b/libs/asio/doc/requirements/ObjectHandleService.qbk
index 1003f6d7e3..d5efcb9662 100644
--- a/libs/asio/doc/requirements/ObjectHandleService.qbk
+++ b/libs/asio/doc/requirements/ObjectHandleService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/Protocol.qbk b/libs/asio/doc/requirements/Protocol.qbk
index 1bd3193496..66a64aba03 100644
--- a/libs/asio/doc/requirements/Protocol.qbk
+++ b/libs/asio/doc/requirements/Protocol.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/RandomAccessHandleService.qbk b/libs/asio/doc/requirements/RandomAccessHandleService.qbk
index 342e712381..537c75b6f1 100644
--- a/libs/asio/doc/requirements/RandomAccessHandleService.qbk
+++ b/libs/asio/doc/requirements/RandomAccessHandleService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/RawSocketService.qbk b/libs/asio/doc/requirements/RawSocketService.qbk
index 3c2c14de50..f7a2704ab8 100644
--- a/libs/asio/doc/requirements/RawSocketService.qbk
+++ b/libs/asio/doc/requirements/RawSocketService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/ReadHandler.qbk b/libs/asio/doc/requirements/ReadHandler.qbk
index 42b43f74c6..8b57bc7736 100644
--- a/libs/asio/doc/requirements/ReadHandler.qbk
+++ b/libs/asio/doc/requirements/ReadHandler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/ResolveHandler.qbk b/libs/asio/doc/requirements/ResolveHandler.qbk
index aefa15a927..f6e0688a48 100644
--- a/libs/asio/doc/requirements/ResolveHandler.qbk
+++ b/libs/asio/doc/requirements/ResolveHandler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/ResolverService.qbk b/libs/asio/doc/requirements/ResolverService.qbk
index 8183cb6155..20e1400db5 100644
--- a/libs/asio/doc/requirements/ResolverService.qbk
+++ b/libs/asio/doc/requirements/ResolverService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SeqPacketSocketService.qbk b/libs/asio/doc/requirements/SeqPacketSocketService.qbk
index c884050f85..1c148d7ffb 100644
--- a/libs/asio/doc/requirements/SeqPacketSocketService.qbk
+++ b/libs/asio/doc/requirements/SeqPacketSocketService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SerialPortService.qbk b/libs/asio/doc/requirements/SerialPortService.qbk
index d9bb6c78f5..656f27d8de 100644
--- a/libs/asio/doc/requirements/SerialPortService.qbk
+++ b/libs/asio/doc/requirements/SerialPortService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/Service.qbk b/libs/asio/doc/requirements/Service.qbk
index cd394ca973..a143470670 100644
--- a/libs/asio/doc/requirements/Service.qbk
+++ b/libs/asio/doc/requirements/Service.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SettableSerialPortOption.qbk b/libs/asio/doc/requirements/SettableSerialPortOption.qbk
index 330f789c88..8331829606 100644
--- a/libs/asio/doc/requirements/SettableSerialPortOption.qbk
+++ b/libs/asio/doc/requirements/SettableSerialPortOption.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SettableSocketOption.qbk b/libs/asio/doc/requirements/SettableSocketOption.qbk
index bd76fd62cc..31ab73e278 100644
--- a/libs/asio/doc/requirements/SettableSocketOption.qbk
+++ b/libs/asio/doc/requirements/SettableSocketOption.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/ShutdownHandler.qbk b/libs/asio/doc/requirements/ShutdownHandler.qbk
index 7eb6b8a07c..2c7f5fcd35 100644
--- a/libs/asio/doc/requirements/ShutdownHandler.qbk
+++ b/libs/asio/doc/requirements/ShutdownHandler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SignalHandler.qbk b/libs/asio/doc/requirements/SignalHandler.qbk
index 26c2f9a952..1c89f62afb 100644
--- a/libs/asio/doc/requirements/SignalHandler.qbk
+++ b/libs/asio/doc/requirements/SignalHandler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SignalSetService.qbk b/libs/asio/doc/requirements/SignalSetService.qbk
index db4fc8411d..1b27dd9fe4 100644
--- a/libs/asio/doc/requirements/SignalSetService.qbk
+++ b/libs/asio/doc/requirements/SignalSetService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SocketAcceptorService.qbk b/libs/asio/doc/requirements/SocketAcceptorService.qbk
index 5d5fd99282..a35e0d62c9 100644
--- a/libs/asio/doc/requirements/SocketAcceptorService.qbk
+++ b/libs/asio/doc/requirements/SocketAcceptorService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SocketService.qbk b/libs/asio/doc/requirements/SocketService.qbk
index 7caeb23a21..2f373beaa6 100644
--- a/libs/asio/doc/requirements/SocketService.qbk
+++ b/libs/asio/doc/requirements/SocketService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/StreamDescriptorService.qbk b/libs/asio/doc/requirements/StreamDescriptorService.qbk
index db58a5dd84..23c53276c6 100644
--- a/libs/asio/doc/requirements/StreamDescriptorService.qbk
+++ b/libs/asio/doc/requirements/StreamDescriptorService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/StreamHandleService.qbk b/libs/asio/doc/requirements/StreamHandleService.qbk
index 58fb820a58..3dd1b95217 100644
--- a/libs/asio/doc/requirements/StreamHandleService.qbk
+++ b/libs/asio/doc/requirements/StreamHandleService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/StreamSocketService.qbk b/libs/asio/doc/requirements/StreamSocketService.qbk
index 68762e1ffd..fedfdef9c3 100644
--- a/libs/asio/doc/requirements/StreamSocketService.qbk
+++ b/libs/asio/doc/requirements/StreamSocketService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SyncRandomAccessReadDevice.qbk b/libs/asio/doc/requirements/SyncRandomAccessReadDevice.qbk
index 989d132a43..8f601a1d99 100644
--- a/libs/asio/doc/requirements/SyncRandomAccessReadDevice.qbk
+++ b/libs/asio/doc/requirements/SyncRandomAccessReadDevice.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SyncRandomAccessWriteDevice.qbk b/libs/asio/doc/requirements/SyncRandomAccessWriteDevice.qbk
index 65eacd9e6f..439ef3c131 100644
--- a/libs/asio/doc/requirements/SyncRandomAccessWriteDevice.qbk
+++ b/libs/asio/doc/requirements/SyncRandomAccessWriteDevice.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SyncReadStream.qbk b/libs/asio/doc/requirements/SyncReadStream.qbk
index 59e5892090..1e37d58100 100644
--- a/libs/asio/doc/requirements/SyncReadStream.qbk
+++ b/libs/asio/doc/requirements/SyncReadStream.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/SyncWriteStream.qbk b/libs/asio/doc/requirements/SyncWriteStream.qbk
index 3500d2c091..f38c413058 100644
--- a/libs/asio/doc/requirements/SyncWriteStream.qbk
+++ b/libs/asio/doc/requirements/SyncWriteStream.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/TimeTraits.qbk b/libs/asio/doc/requirements/TimeTraits.qbk
index 956fd8d504..7c0fcd95ce 100644
--- a/libs/asio/doc/requirements/TimeTraits.qbk
+++ b/libs/asio/doc/requirements/TimeTraits.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/TimerService.qbk b/libs/asio/doc/requirements/TimerService.qbk
index dadca8ed00..3b957aefcb 100644
--- a/libs/asio/doc/requirements/TimerService.qbk
+++ b/libs/asio/doc/requirements/TimerService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/WaitHandler.qbk b/libs/asio/doc/requirements/WaitHandler.qbk
index dd3966c6ba..75033342a1 100644
--- a/libs/asio/doc/requirements/WaitHandler.qbk
+++ b/libs/asio/doc/requirements/WaitHandler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/WaitTraits.qbk b/libs/asio/doc/requirements/WaitTraits.qbk
index 1514e3d8f9..19aaed1c17 100644
--- a/libs/asio/doc/requirements/WaitTraits.qbk
+++ b/libs/asio/doc/requirements/WaitTraits.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/WaitableTimerService.qbk b/libs/asio/doc/requirements/WaitableTimerService.qbk
index ca3aac3fcc..427c3dbafa 100644
--- a/libs/asio/doc/requirements/WaitableTimerService.qbk
+++ b/libs/asio/doc/requirements/WaitableTimerService.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/WriteHandler.qbk b/libs/asio/doc/requirements/WriteHandler.qbk
index a33d2a6570..40ea07705a 100644
--- a/libs/asio/doc/requirements/WriteHandler.qbk
+++ b/libs/asio/doc/requirements/WriteHandler.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/requirements/asynchronous_operations.qbk b/libs/asio/doc/requirements/asynchronous_operations.qbk
index b539536a9b..1293dd8477 100644
--- a/libs/asio/doc/requirements/asynchronous_operations.qbk
+++ b/libs/asio/doc/requirements/asynchronous_operations.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -173,4 +173,45 @@ to deallocate the storage prior to the invocation of the handler via
`asio_handler_invoke`. Multiple storage blocks may be allocated for a single
asynchronous operation.
+[heading Return type of an initiating function]
+
+By default, initiating functions return `void`. This is always the case when
+the handler is a function pointer, C++11 lambda, or a function object produced
+by `boost::bind` or `std::bind`.
+
+For other types, the return type may be customised via a two-step process:
+
+# A specialisation of the [link boost_asio.reference.handler_type `handler_type`]
+template, which is used to determine the true handler type based on the
+asynchronous operation's handler's signature.
+
+# A specialisation of the [link boost_asio.reference.async_result `async_result`]
+template, which is used both to determine the return type and to extract the
+return value from the handler.
+
+These two templates have been specialised to provide support for [link
+boost_asio.overview.core.spawn stackful coroutines] and the C++11 `std::future`
+class.
+
+As an example, consider what happens when enabling `std::future` support by
+using the `boost::asio::use_future` special value, as in:
+
+ std::future<std::size_t> length =
+ my_socket.async_read_some(my_buffer, boost::asio::use_future);
+
+When a handler signature has the form:
+
+ void handler(error_code ec, result_type result);
+
+the initiating function returns a `std::future` templated on `result_type`. In
+the above `async_read_some` example, this is `std::size_t`. If the asynchronous
+operation fails, the `error_code` is converted into a `system_error` exception
+and passed back to the caller through the future.
+
+Where a handler signature has the form:
+
+ void handler(error_code ec);
+
+the initiating function instead returns `std::future<void>`.
+
[endsect]
diff --git a/libs/asio/doc/std_exception_dox.txt b/libs/asio/doc/std_exception_dox.txt
index 4e7222bbc1..74aeacc0c5 100644
--- a/libs/asio/doc/std_exception_dox.txt
+++ b/libs/asio/doc/std_exception_dox.txt
@@ -1,5 +1,5 @@
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/tutorial.dox b/libs/asio/doc/tutorial.dox
index 0ca1952146..4c24986450 100644
--- a/libs/asio/doc/tutorial.dox
+++ b/libs/asio/doc/tutorial.dox
@@ -72,9 +72,9 @@ WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
-INPUT = ./../example/tutorial/index_dox.txt \
- ./../example/tutorial/timer_dox.txt \
- ./../example/tutorial/daytime_dox.txt
+INPUT = ./../example/cpp03/tutorial/index_dox.txt \
+ ./../example/cpp03/tutorial/timer_dox.txt \
+ ./../example/cpp03/tutorial/daytime_dox.txt
FILE_PATTERNS =
RECURSIVE = NO
EXCLUDE =
diff --git a/libs/asio/doc/tutorial.qbk b/libs/asio/doc/tutorial.qbk
index d22631b6d9..afff0a0356 100644
--- a/libs/asio/doc/tutorial.qbk
+++ b/libs/asio/doc/tutorial.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
@@ -142,7 +142,7 @@ Next: [link boost_asio.tutorial.tuttimer2 Timer.2 - Using a timer asynchronously
``''''''``// timer.cpp
``''''''``// ~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
@@ -242,7 +242,7 @@ Next: [link boost_asio.tutorial.tuttimer3 Timer.3 - Binding arguments to a handl
``''''''``// timer.cpp
``''''''``// ~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
@@ -390,7 +390,7 @@ Next: [link boost_asio.tutorial.tuttimer4 Timer.4 - Using a member function as a
``''''''``// timer.cpp
``''''''``// ~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
@@ -551,7 +551,7 @@ Next: [link boost_asio.tutorial.tuttimer5 Timer.5 - Synchronising handlers in mu
``''''''``// timer.cpp
``''''''``// ~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
@@ -707,7 +707,7 @@ In a multithreaded program, the handlers for asynchronous operations should be s
``''''''`` }
``''''''``private:
- ``''''''`` boost::asio::strand strand_;
+ ``''''''`` boost::asio::io_service::strand strand_;
``''''''`` boost::asio::deadline_timer timer1_;
``''''''`` boost::asio::deadline_timer timer2_;
``''''''`` int count_;
@@ -751,7 +751,7 @@ Previous: [link boost_asio.tutorial.tuttimer4 Timer.4 - Using a member function
``''''''``// timer.cpp
``''''''``// ~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
@@ -806,7 +806,7 @@ Previous: [link boost_asio.tutorial.tuttimer4 Timer.4 - Using a member function
``''''''`` }
``''''''``private:
- ``''''''`` boost::asio::strand strand_;
+ ``''''''`` boost::asio::io_service::strand strand_;
``''''''`` boost::asio::deadline_timer timer1_;
``''''''`` boost::asio::deadline_timer timer2_;
``''''''`` int count_;
@@ -959,7 +959,7 @@ Next: [link boost_asio.tutorial.tutdaytime2 Daytime.2 - A synchronous TCP daytim
``''''''``// client.cpp
``''''''``// ~~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
@@ -1118,7 +1118,7 @@ Next: [link boost_asio.tutorial.tutdaytime3 Daytime.3 - An asynchronous TCP dayt
``''''''``// server.cpp
``''''''``// ~~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
@@ -1370,7 +1370,7 @@ Next: [link boost_asio.tutorial.tutdaytime4 Daytime.4 - A synchronous UDP daytim
``''''''``// server.cpp
``''''''``// ~~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
@@ -1591,7 +1591,7 @@ Next: [link boost_asio.tutorial.tutdaytime5 Daytime.5 - A synchronous UDP daytim
``''''''``// client.cpp
``''''''``// ~~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
@@ -1734,7 +1734,7 @@ Next: [link boost_asio.tutorial.tutdaytime6 Daytime.6 - An asynchronous UDP dayt
``''''''``// server.cpp
``''''''``// ~~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
@@ -1952,7 +1952,7 @@ Next: [link boost_asio.tutorial.tutdaytime7 Daytime.7 - A combined TCP/UDP async
``''''''``// server.cpp
``''''''``// ~~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
@@ -2231,7 +2231,7 @@ Previous: [link boost_asio.tutorial.tutdaytime6 Daytime.6 - An asynchronous UDP
``''''''``// server.cpp
``''''''``// ~~~~~~~~~~
``''''''``//
- ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/tutorial.xsl b/libs/asio/doc/tutorial.xsl
index 3b6f530fe9..9a79ad530c 100644
--- a/libs/asio/doc/tutorial.xsl
+++ b/libs/asio/doc/tutorial.xsl
@@ -2,7 +2,7 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!--
- Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ Copyright (c) 2003-2014 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)
@@ -20,7 +20,7 @@
<xsl:template match="/doxygen">
<xsl:text>[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/doc/using.qbk b/libs/asio/doc/using.qbk
index 68cbdf7762..3cc7563fda 100644
--- a/libs/asio/doc/using.qbk
+++ b/libs/asio/doc/using.qbk
@@ -1,5 +1,5 @@
[/
- / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/allocation/Jamfile b/libs/asio/example/cpp03/allocation/Jamfile
index 230f77ef07..4d345ecf16 100644
--- a/libs/asio/example/allocation/Jamfile
+++ b/libs/asio/example/cpp03/allocation/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/allocation/Jamfile.v2 b/libs/asio/example/cpp03/allocation/Jamfile.v2
index 4b22e92313..84df930c86 100644
--- a/libs/asio/example/allocation/Jamfile.v2
+++ b/libs/asio/example/cpp03/allocation/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/allocation/server.cpp b/libs/asio/example/cpp03/allocation/server.cpp
index 3edabe13ba..ab06b4fc28 100644
--- a/libs/asio/example/allocation/server.cpp
+++ b/libs/asio/example/cpp03/allocation/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/buffers/Jamfile b/libs/asio/example/cpp03/buffers/Jamfile
index ce689c638d..152d1037d5 100644
--- a/libs/asio/example/buffers/Jamfile
+++ b/libs/asio/example/cpp03/buffers/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/buffers/Jamfile.v2 b/libs/asio/example/cpp03/buffers/Jamfile.v2
index 913da06b38..95aacad8fe 100644
--- a/libs/asio/example/buffers/Jamfile.v2
+++ b/libs/asio/example/cpp03/buffers/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/buffers/reference_counted.cpp b/libs/asio/example/cpp03/buffers/reference_counted.cpp
index d786f2e831..cfb0281738 100644
--- a/libs/asio/example/buffers/reference_counted.cpp
+++ b/libs/asio/example/cpp03/buffers/reference_counted.cpp
@@ -2,7 +2,7 @@
// reference_counted.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/chat/Jamfile b/libs/asio/example/cpp03/chat/Jamfile
index cdf8e8bba0..02fcff26c8 100644
--- a/libs/asio/example/chat/Jamfile
+++ b/libs/asio/example/cpp03/chat/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/chat/Jamfile.v2 b/libs/asio/example/cpp03/chat/Jamfile.v2
index 3a77b5cd83..02e6813ef2 100644
--- a/libs/asio/example/chat/Jamfile.v2
+++ b/libs/asio/example/cpp03/chat/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/chat/chat_client.cpp b/libs/asio/example/cpp03/chat/chat_client.cpp
index 664d2fa04d..e0f0fa421b 100644
--- a/libs/asio/example/chat/chat_client.cpp
+++ b/libs/asio/example/cpp03/chat/chat_client.cpp
@@ -2,7 +2,7 @@
// chat_client.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/chat/chat_message.hpp b/libs/asio/example/cpp03/chat/chat_message.hpp
index 56760a51b9..90dac153c0 100644
--- a/libs/asio/example/chat/chat_message.hpp
+++ b/libs/asio/example/cpp03/chat/chat_message.hpp
@@ -2,7 +2,7 @@
// chat_message.hpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -81,7 +81,7 @@ public:
{
using namespace std; // For sprintf and memcpy.
char header[header_length + 1] = "";
- sprintf(header, "%4d", body_length_);
+ sprintf(header, "%4d", static_cast<int>(body_length_));
memcpy(data_, header, header_length);
}
diff --git a/libs/asio/example/chat/chat_server.cpp b/libs/asio/example/cpp03/chat/chat_server.cpp
index 5defa3a2fe..4eb0a8c6f5 100644
--- a/libs/asio/example/chat/chat_server.cpp
+++ b/libs/asio/example/cpp03/chat/chat_server.cpp
@@ -2,7 +2,7 @@
// chat_server.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/chat/posix_chat_client.cpp b/libs/asio/example/cpp03/chat/posix_chat_client.cpp
index 3a39e7c3d7..46e475e6a9 100644
--- a/libs/asio/example/chat/posix_chat_client.cpp
+++ b/libs/asio/example/cpp03/chat/posix_chat_client.cpp
@@ -2,7 +2,7 @@
// posix_chat_client.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/echo/Jamfile b/libs/asio/example/cpp03/echo/Jamfile
index ed71347806..6148b39388 100644
--- a/libs/asio/example/echo/Jamfile
+++ b/libs/asio/example/cpp03/echo/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/echo/Jamfile.v2 b/libs/asio/example/cpp03/echo/Jamfile.v2
index 2070024c8b..5ec2c0795c 100644
--- a/libs/asio/example/echo/Jamfile.v2
+++ b/libs/asio/example/cpp03/echo/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/echo/async_tcp_echo_server.cpp b/libs/asio/example/cpp03/echo/async_tcp_echo_server.cpp
index e562e370d1..3b0337f06f 100644
--- a/libs/asio/example/echo/async_tcp_echo_server.cpp
+++ b/libs/asio/example/cpp03/echo/async_tcp_echo_server.cpp
@@ -2,7 +2,7 @@
// async_tcp_echo_server.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/echo/async_udp_echo_server.cpp b/libs/asio/example/cpp03/echo/async_udp_echo_server.cpp
index 1452a0e238..88f959d824 100644
--- a/libs/asio/example/echo/async_udp_echo_server.cpp
+++ b/libs/asio/example/cpp03/echo/async_udp_echo_server.cpp
@@ -2,7 +2,7 @@
// async_udp_echo_server.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -19,8 +19,7 @@ class server
{
public:
server(boost::asio::io_service& io_service, short port)
- : io_service_(io_service),
- socket_(io_service, udp::endpoint(udp::v4(), port))
+ : socket_(io_service, udp::endpoint(udp::v4(), port))
{
socket_.async_receive_from(
boost::asio::buffer(data_, max_length), sender_endpoint_,
@@ -61,7 +60,6 @@ public:
}
private:
- boost::asio::io_service& io_service_;
udp::socket socket_;
udp::endpoint sender_endpoint_;
enum { max_length = 1024 };
diff --git a/libs/asio/example/echo/blocking_tcp_echo_client.cpp b/libs/asio/example/cpp03/echo/blocking_tcp_echo_client.cpp
index 020b1cc9a2..90ada3e349 100644
--- a/libs/asio/example/echo/blocking_tcp_echo_client.cpp
+++ b/libs/asio/example/cpp03/echo/blocking_tcp_echo_client.cpp
@@ -2,7 +2,7 @@
// blocking_tcp_echo_client.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/echo/blocking_tcp_echo_server.cpp b/libs/asio/example/cpp03/echo/blocking_tcp_echo_server.cpp
index 09c654f50b..cfb69d881b 100644
--- a/libs/asio/example/echo/blocking_tcp_echo_server.cpp
+++ b/libs/asio/example/cpp03/echo/blocking_tcp_echo_server.cpp
@@ -2,7 +2,7 @@
// blocking_tcp_echo_server.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -45,7 +45,7 @@ void session(socket_ptr sock)
}
}
-void server(boost::asio::io_service& io_service, short port)
+void server(boost::asio::io_service& io_service, unsigned short port)
{
tcp::acceptor a(io_service, tcp::endpoint(tcp::v4(), port));
for (;;)
diff --git a/libs/asio/example/echo/blocking_udp_echo_client.cpp b/libs/asio/example/cpp03/echo/blocking_udp_echo_client.cpp
index 47161ef015..1a2817a7a1 100644
--- a/libs/asio/example/echo/blocking_udp_echo_client.cpp
+++ b/libs/asio/example/cpp03/echo/blocking_udp_echo_client.cpp
@@ -2,7 +2,7 @@
// blocking_udp_echo_client.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/echo/blocking_udp_echo_server.cpp b/libs/asio/example/cpp03/echo/blocking_udp_echo_server.cpp
index a5c911ffa0..30eaa40954 100644
--- a/libs/asio/example/echo/blocking_udp_echo_server.cpp
+++ b/libs/asio/example/cpp03/echo/blocking_udp_echo_server.cpp
@@ -2,7 +2,7 @@
// blocking_udp_echo_server.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,7 +16,7 @@ using boost::asio::ip::udp;
enum { max_length = 1024 };
-void server(boost::asio::io_service& io_service, short port)
+void server(boost::asio::io_service& io_service, unsigned short port)
{
udp::socket sock(io_service, udp::endpoint(udp::v4(), port));
for (;;)
diff --git a/libs/asio/example/fork/Jamfile b/libs/asio/example/cpp03/fork/Jamfile
index ed8baa4987..d5d9f43885 100644
--- a/libs/asio/example/fork/Jamfile
+++ b/libs/asio/example/cpp03/fork/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/fork/Jamfile.v2 b/libs/asio/example/cpp03/fork/Jamfile.v2
index 80478a0f35..09f2ef5b86 100644
--- a/libs/asio/example/fork/Jamfile.v2
+++ b/libs/asio/example/cpp03/fork/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/fork/daemon.cpp b/libs/asio/example/cpp03/fork/daemon.cpp
index 70cdac113b..3fdcf6d6be 100644
--- a/libs/asio/example/fork/daemon.cpp
+++ b/libs/asio/example/cpp03/fork/daemon.cpp
@@ -2,7 +2,7 @@
// daemon.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/fork/process_per_connection.cpp b/libs/asio/example/cpp03/fork/process_per_connection.cpp
index 5b71f03277..6cea8a368c 100644
--- a/libs/asio/example/fork/process_per_connection.cpp
+++ b/libs/asio/example/cpp03/fork/process_per_connection.cpp
@@ -2,7 +2,7 @@
// process_per_connection.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/client/Jamfile b/libs/asio/example/cpp03/http/client/Jamfile
index 73a30b8994..e45544ee59 100644
--- a/libs/asio/example/http/client/Jamfile
+++ b/libs/asio/example/cpp03/http/client/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/client/Jamfile.v2 b/libs/asio/example/cpp03/http/client/Jamfile.v2
index e6d707205f..25530d69d5 100644
--- a/libs/asio/example/http/client/Jamfile.v2
+++ b/libs/asio/example/cpp03/http/client/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/client/async_client.cpp b/libs/asio/example/cpp03/http/client/async_client.cpp
index 825c04a0f2..3a52b0b199 100644
--- a/libs/asio/example/http/client/async_client.cpp
+++ b/libs/asio/example/cpp03/http/client/async_client.cpp
@@ -2,7 +2,7 @@
// async_client.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/client/sync_client.cpp b/libs/asio/example/cpp03/http/client/sync_client.cpp
index 93fa11ae7c..949fd64179 100644
--- a/libs/asio/example/http/client/sync_client.cpp
+++ b/libs/asio/example/cpp03/http/client/sync_client.cpp
@@ -2,7 +2,7 @@
// sync_client.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/doc_root/data_1K.html b/libs/asio/example/cpp03/http/doc_root/data_1K.html
index 2a33d8eaa6..9cb1aa3c89 100644
--- a/libs/asio/example/http/doc_root/data_1K.html
+++ b/libs/asio/example/cpp03/http/doc_root/data_1K.html
@@ -1,5 +1,5 @@
<!--
-Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/doc_root/data_2K.html b/libs/asio/example/cpp03/http/doc_root/data_2K.html
index a1f1d83c46..e6569856ba 100644
--- a/libs/asio/example/http/doc_root/data_2K.html
+++ b/libs/asio/example/cpp03/http/doc_root/data_2K.html
@@ -1,5 +1,5 @@
<!--
-Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/doc_root/data_4K.html b/libs/asio/example/cpp03/http/doc_root/data_4K.html
index 7819d10a1c..91314b34ed 100644
--- a/libs/asio/example/http/doc_root/data_4K.html
+++ b/libs/asio/example/cpp03/http/doc_root/data_4K.html
@@ -1,5 +1,5 @@
<!--
-Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/doc_root/data_8K.html b/libs/asio/example/cpp03/http/doc_root/data_8K.html
index 8247f7da2b..6fbe9fb03f 100644
--- a/libs/asio/example/http/doc_root/data_8K.html
+++ b/libs/asio/example/cpp03/http/doc_root/data_8K.html
@@ -1,5 +1,5 @@
<!--
-Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/Jamfile b/libs/asio/example/cpp03/http/server/Jamfile
index 921bbe553e..38d596bc26 100644
--- a/libs/asio/example/http/server/Jamfile
+++ b/libs/asio/example/cpp03/http/server/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/Jamfile.v2 b/libs/asio/example/cpp03/http/server/Jamfile.v2
index 8b0c954d63..0ebe0e2d27 100644
--- a/libs/asio/example/http/server/Jamfile.v2
+++ b/libs/asio/example/cpp03/http/server/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/connection.cpp b/libs/asio/example/cpp03/http/server/connection.cpp
index e379043cd7..a780eab250 100644
--- a/libs/asio/example/http/server/connection.cpp
+++ b/libs/asio/example/cpp03/http/server/connection.cpp
@@ -2,7 +2,7 @@
// connection.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/connection.hpp b/libs/asio/example/cpp03/http/server/connection.hpp
index 35d3a1c237..bd8a27302d 100644
--- a/libs/asio/example/http/server/connection.hpp
+++ b/libs/asio/example/cpp03/http/server/connection.hpp
@@ -2,7 +2,7 @@
// connection.hpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/connection_manager.cpp b/libs/asio/example/cpp03/http/server/connection_manager.cpp
index 664d444f3e..bafad4a56c 100644
--- a/libs/asio/example/http/server/connection_manager.cpp
+++ b/libs/asio/example/cpp03/http/server/connection_manager.cpp
@@ -2,7 +2,7 @@
// connection_manager.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/connection_manager.hpp b/libs/asio/example/cpp03/http/server/connection_manager.hpp
index f49ab64b58..bab867d555 100644
--- a/libs/asio/example/http/server/connection_manager.hpp
+++ b/libs/asio/example/cpp03/http/server/connection_manager.hpp
@@ -2,7 +2,7 @@
// connection_manager.hpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/header.hpp b/libs/asio/example/cpp03/http/server/header.hpp
index 85bf301842..b2375afea2 100644
--- a/libs/asio/example/http/server/header.hpp
+++ b/libs/asio/example/cpp03/http/server/header.hpp
@@ -2,7 +2,7 @@
// header.hpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/main.cpp b/libs/asio/example/cpp03/http/server/main.cpp
index e562c05f23..ba52be2a4d 100644
--- a/libs/asio/example/http/server/main.cpp
+++ b/libs/asio/example/cpp03/http/server/main.cpp
@@ -2,7 +2,7 @@
// main.cpp
// ~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/mime_types.cpp b/libs/asio/example/cpp03/http/server/mime_types.cpp
index d2898b257b..2ea2c26628 100644
--- a/libs/asio/example/http/server/mime_types.cpp
+++ b/libs/asio/example/cpp03/http/server/mime_types.cpp
@@ -2,7 +2,7 @@
// mime_types.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/mime_types.hpp b/libs/asio/example/cpp03/http/server/mime_types.hpp
index ab55291bea..21f737e584 100644
--- a/libs/asio/example/http/server/mime_types.hpp
+++ b/libs/asio/example/cpp03/http/server/mime_types.hpp
@@ -2,7 +2,7 @@
// mime_types.hpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/reply.cpp b/libs/asio/example/cpp03/http/server/reply.cpp
index 044951dad1..318a4705f0 100644
--- a/libs/asio/example/http/server/reply.cpp
+++ b/libs/asio/example/cpp03/http/server/reply.cpp
@@ -2,7 +2,7 @@
// reply.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/reply.hpp b/libs/asio/example/cpp03/http/server/reply.hpp
index a0dab62bf9..9757df4931 100644
--- a/libs/asio/example/http/server/reply.hpp
+++ b/libs/asio/example/cpp03/http/server/reply.hpp
@@ -2,7 +2,7 @@
// reply.hpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/request.hpp b/libs/asio/example/cpp03/http/server/request.hpp
index 3be102154c..3e2250186e 100644
--- a/libs/asio/example/http/server/request.hpp
+++ b/libs/asio/example/cpp03/http/server/request.hpp
@@ -2,7 +2,7 @@
// request.hpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/request_handler.cpp b/libs/asio/example/cpp03/http/server/request_handler.cpp
index bd1f5d2066..7d0452bd34 100644
--- a/libs/asio/example/http/server/request_handler.cpp
+++ b/libs/asio/example/cpp03/http/server/request_handler.cpp
@@ -2,7 +2,7 @@
// request_handler.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/request_handler.hpp b/libs/asio/example/cpp03/http/server/request_handler.hpp
index 661bad789e..fdc5b08ec1 100644
--- a/libs/asio/example/http/server/request_handler.hpp
+++ b/libs/asio/example/cpp03/http/server/request_handler.hpp
@@ -2,7 +2,7 @@
// request_handler.hpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/request_parser.cpp b/libs/asio/example/cpp03/http/server/request_parser.cpp
index b5bb9c26d8..af2d8513de 100644
--- a/libs/asio/example/http/server/request_parser.cpp
+++ b/libs/asio/example/cpp03/http/server/request_parser.cpp
@@ -2,7 +2,7 @@
// request_parser.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/request_parser.hpp b/libs/asio/example/cpp03/http/server/request_parser.hpp
index 506fda102a..59f14a237b 100644
--- a/libs/asio/example/http/server/request_parser.hpp
+++ b/libs/asio/example/cpp03/http/server/request_parser.hpp
@@ -2,7 +2,7 @@
// request_parser.hpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/server.cpp b/libs/asio/example/cpp03/http/server/server.cpp
index 5fcc5d903e..7989db5d82 100644
--- a/libs/asio/example/http/server/server.cpp
+++ b/libs/asio/example/cpp03/http/server/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server/server.hpp b/libs/asio/example/cpp03/http/server/server.hpp
index 0cb347665c..750c659341 100644
--- a/libs/asio/example/http/server/server.hpp
+++ b/libs/asio/example/cpp03/http/server/server.hpp
@@ -2,7 +2,7 @@
// server.hpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/Jamfile b/libs/asio/example/cpp03/http/server2/Jamfile
index f76314a96e..fbebf328ed 100644
--- a/libs/asio/example/http/server2/Jamfile
+++ b/libs/asio/example/cpp03/http/server2/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/Jamfile.v2 b/libs/asio/example/cpp03/http/server2/Jamfile.v2
index 9df51f501f..9a6a5f9c1a 100644
--- a/libs/asio/example/http/server2/Jamfile.v2
+++ b/libs/asio/example/cpp03/http/server2/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/connection.cpp b/libs/asio/example/cpp03/http/server2/connection.cpp
index 6ac7ec73ac..3b1d036376 100644
--- a/libs/asio/example/http/server2/connection.cpp
+++ b/libs/asio/example/cpp03/http/server2/connection.cpp
@@ -2,7 +2,7 @@
// connection.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/connection.hpp b/libs/asio/example/cpp03/http/server2/connection.hpp
index 12b5ad8efb..2a0b3413aa 100644
--- a/libs/asio/example/http/server2/connection.hpp
+++ b/libs/asio/example/cpp03/http/server2/connection.hpp
@@ -2,7 +2,7 @@
// connection.hpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/header.hpp b/libs/asio/example/cpp03/http/server2/header.hpp
index 860bb9dc47..6e84adecbb 100644
--- a/libs/asio/example/http/server2/header.hpp
+++ b/libs/asio/example/cpp03/http/server2/header.hpp
@@ -2,7 +2,7 @@
// header.hpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/io_service_pool.cpp b/libs/asio/example/cpp03/http/server2/io_service_pool.cpp
index 1336fea58f..4654ed63ba 100644
--- a/libs/asio/example/http/server2/io_service_pool.cpp
+++ b/libs/asio/example/cpp03/http/server2/io_service_pool.cpp
@@ -2,7 +2,7 @@
// io_service_pool.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/io_service_pool.hpp b/libs/asio/example/cpp03/http/server2/io_service_pool.hpp
index f92b24f51d..7722693a53 100644
--- a/libs/asio/example/http/server2/io_service_pool.hpp
+++ b/libs/asio/example/cpp03/http/server2/io_service_pool.hpp
@@ -2,7 +2,7 @@
// io_service_pool.hpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/main.cpp b/libs/asio/example/cpp03/http/server2/main.cpp
index e770349094..49db83aff4 100644
--- a/libs/asio/example/http/server2/main.cpp
+++ b/libs/asio/example/cpp03/http/server2/main.cpp
@@ -2,7 +2,7 @@
// main.cpp
// ~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/mime_types.cpp b/libs/asio/example/cpp03/http/server2/mime_types.cpp
index 913335d407..a08f7ec082 100644
--- a/libs/asio/example/http/server2/mime_types.cpp
+++ b/libs/asio/example/cpp03/http/server2/mime_types.cpp
@@ -2,7 +2,7 @@
// mime_types.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/mime_types.hpp b/libs/asio/example/cpp03/http/server2/mime_types.hpp
index dda2dcb304..3277c8437e 100644
--- a/libs/asio/example/http/server2/mime_types.hpp
+++ b/libs/asio/example/cpp03/http/server2/mime_types.hpp
@@ -2,7 +2,7 @@
// mime_types.hpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/reply.cpp b/libs/asio/example/cpp03/http/server2/reply.cpp
index 0e6d1ac99b..17bfb4d440 100644
--- a/libs/asio/example/http/server2/reply.cpp
+++ b/libs/asio/example/cpp03/http/server2/reply.cpp
@@ -2,7 +2,7 @@
// reply.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/reply.hpp b/libs/asio/example/cpp03/http/server2/reply.hpp
index 42388c0926..7ae1151b1f 100644
--- a/libs/asio/example/http/server2/reply.hpp
+++ b/libs/asio/example/cpp03/http/server2/reply.hpp
@@ -2,7 +2,7 @@
// reply.hpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/request.hpp b/libs/asio/example/cpp03/http/server2/request.hpp
index 8a0d8d8311..b17b650fb9 100644
--- a/libs/asio/example/http/server2/request.hpp
+++ b/libs/asio/example/cpp03/http/server2/request.hpp
@@ -2,7 +2,7 @@
// request.hpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/request_handler.cpp b/libs/asio/example/cpp03/http/server2/request_handler.cpp
index 9f29fb6821..055d414d28 100644
--- a/libs/asio/example/http/server2/request_handler.cpp
+++ b/libs/asio/example/cpp03/http/server2/request_handler.cpp
@@ -2,7 +2,7 @@
// request_handler.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/request_handler.hpp b/libs/asio/example/cpp03/http/server2/request_handler.hpp
index 49bdb4d5a7..b48ca3a510 100644
--- a/libs/asio/example/http/server2/request_handler.hpp
+++ b/libs/asio/example/cpp03/http/server2/request_handler.hpp
@@ -2,7 +2,7 @@
// request_handler.hpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/request_parser.cpp b/libs/asio/example/cpp03/http/server2/request_parser.cpp
index a51954cc6d..d9b8b7a4b3 100644
--- a/libs/asio/example/http/server2/request_parser.cpp
+++ b/libs/asio/example/cpp03/http/server2/request_parser.cpp
@@ -2,7 +2,7 @@
// request_parser.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/request_parser.hpp b/libs/asio/example/cpp03/http/server2/request_parser.hpp
index c6bff46a19..f6f0819908 100644
--- a/libs/asio/example/http/server2/request_parser.hpp
+++ b/libs/asio/example/cpp03/http/server2/request_parser.hpp
@@ -2,7 +2,7 @@
// request_parser.hpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/server.cpp b/libs/asio/example/cpp03/http/server2/server.cpp
index a767316537..bb96abe258 100644
--- a/libs/asio/example/http/server2/server.cpp
+++ b/libs/asio/example/cpp03/http/server2/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server2/server.hpp b/libs/asio/example/cpp03/http/server2/server.hpp
index c2439fa047..454d51d611 100644
--- a/libs/asio/example/http/server2/server.hpp
+++ b/libs/asio/example/cpp03/http/server2/server.hpp
@@ -2,7 +2,7 @@
// server.hpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/Jamfile b/libs/asio/example/cpp03/http/server3/Jamfile
index a48783d006..c55810650a 100644
--- a/libs/asio/example/http/server3/Jamfile
+++ b/libs/asio/example/cpp03/http/server3/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/Jamfile.v2 b/libs/asio/example/cpp03/http/server3/Jamfile.v2
index f71b4605e5..f1d509173d 100644
--- a/libs/asio/example/http/server3/Jamfile.v2
+++ b/libs/asio/example/cpp03/http/server3/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/connection.cpp b/libs/asio/example/cpp03/http/server3/connection.cpp
index 94d96ec0ea..31cdba5203 100644
--- a/libs/asio/example/http/server3/connection.cpp
+++ b/libs/asio/example/cpp03/http/server3/connection.cpp
@@ -2,7 +2,7 @@
// connection.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/connection.hpp b/libs/asio/example/cpp03/http/server3/connection.hpp
index 0804775f93..edb0bfd377 100644
--- a/libs/asio/example/http/server3/connection.hpp
+++ b/libs/asio/example/cpp03/http/server3/connection.hpp
@@ -2,7 +2,7 @@
// connection.hpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/header.hpp b/libs/asio/example/cpp03/http/server3/header.hpp
index edacb14ca6..921eebcbf7 100644
--- a/libs/asio/example/http/server3/header.hpp
+++ b/libs/asio/example/cpp03/http/server3/header.hpp
@@ -2,7 +2,7 @@
// header.hpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/main.cpp b/libs/asio/example/cpp03/http/server3/main.cpp
index 070e62ee98..09780cec48 100644
--- a/libs/asio/example/http/server3/main.cpp
+++ b/libs/asio/example/cpp03/http/server3/main.cpp
@@ -2,7 +2,7 @@
// main.cpp
// ~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/mime_types.cpp b/libs/asio/example/cpp03/http/server3/mime_types.cpp
index 35592a5b85..41b49493be 100644
--- a/libs/asio/example/http/server3/mime_types.cpp
+++ b/libs/asio/example/cpp03/http/server3/mime_types.cpp
@@ -2,7 +2,7 @@
// mime_types.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/mime_types.hpp b/libs/asio/example/cpp03/http/server3/mime_types.hpp
index b0e671e6d1..381ed59518 100644
--- a/libs/asio/example/http/server3/mime_types.hpp
+++ b/libs/asio/example/cpp03/http/server3/mime_types.hpp
@@ -2,7 +2,7 @@
// mime_types.hpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/reply.cpp b/libs/asio/example/cpp03/http/server3/reply.cpp
index 7f80653f92..67615808a1 100644
--- a/libs/asio/example/http/server3/reply.cpp
+++ b/libs/asio/example/cpp03/http/server3/reply.cpp
@@ -2,7 +2,7 @@
// reply.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/reply.hpp b/libs/asio/example/cpp03/http/server3/reply.hpp
index b7ca96ae4c..c953d28eaa 100644
--- a/libs/asio/example/http/server3/reply.hpp
+++ b/libs/asio/example/cpp03/http/server3/reply.hpp
@@ -2,7 +2,7 @@
// reply.hpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/request.hpp b/libs/asio/example/cpp03/http/server3/request.hpp
index f5d99feeeb..d1fbb77ec5 100644
--- a/libs/asio/example/http/server3/request.hpp
+++ b/libs/asio/example/cpp03/http/server3/request.hpp
@@ -2,7 +2,7 @@
// request.hpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/request_handler.cpp b/libs/asio/example/cpp03/http/server3/request_handler.cpp
index 5948ea7806..c4397307f6 100644
--- a/libs/asio/example/http/server3/request_handler.cpp
+++ b/libs/asio/example/cpp03/http/server3/request_handler.cpp
@@ -2,7 +2,7 @@
// request_handler.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/request_handler.hpp b/libs/asio/example/cpp03/http/server3/request_handler.hpp
index 4847701e49..3c5a15ed9a 100644
--- a/libs/asio/example/http/server3/request_handler.hpp
+++ b/libs/asio/example/cpp03/http/server3/request_handler.hpp
@@ -2,7 +2,7 @@
// request_handler.hpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/request_parser.cpp b/libs/asio/example/cpp03/http/server3/request_parser.cpp
index e32c00e4e7..e3fd16011d 100644
--- a/libs/asio/example/http/server3/request_parser.cpp
+++ b/libs/asio/example/cpp03/http/server3/request_parser.cpp
@@ -2,7 +2,7 @@
// request_parser.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/request_parser.hpp b/libs/asio/example/cpp03/http/server3/request_parser.hpp
index d68709c156..f3db83337d 100644
--- a/libs/asio/example/http/server3/request_parser.hpp
+++ b/libs/asio/example/cpp03/http/server3/request_parser.hpp
@@ -2,7 +2,7 @@
// request_parser.hpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/server.cpp b/libs/asio/example/cpp03/http/server3/server.cpp
index 4b313680fe..3feb97f371 100644
--- a/libs/asio/example/http/server3/server.cpp
+++ b/libs/asio/example/cpp03/http/server3/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server3/server.hpp b/libs/asio/example/cpp03/http/server3/server.hpp
index f97152c931..d11b6e74a0 100644
--- a/libs/asio/example/http/server3/server.hpp
+++ b/libs/asio/example/cpp03/http/server3/server.hpp
@@ -2,7 +2,7 @@
// server.hpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/Jamfile b/libs/asio/example/cpp03/http/server4/Jamfile
index 2894fd932a..fbc344b626 100644
--- a/libs/asio/example/http/server4/Jamfile
+++ b/libs/asio/example/cpp03/http/server4/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/Jamfile.v2 b/libs/asio/example/cpp03/http/server4/Jamfile.v2
index de17a0c3b9..39f04956d4 100644
--- a/libs/asio/example/http/server4/Jamfile.v2
+++ b/libs/asio/example/cpp03/http/server4/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/file_handler.cpp b/libs/asio/example/cpp03/http/server4/file_handler.cpp
index dfe101be0e..cfcaa1c7ab 100644
--- a/libs/asio/example/http/server4/file_handler.cpp
+++ b/libs/asio/example/cpp03/http/server4/file_handler.cpp
@@ -2,7 +2,7 @@
// file_handler.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/file_handler.hpp b/libs/asio/example/cpp03/http/server4/file_handler.hpp
index bf177db31d..6d32662101 100644
--- a/libs/asio/example/http/server4/file_handler.hpp
+++ b/libs/asio/example/cpp03/http/server4/file_handler.hpp
@@ -2,7 +2,7 @@
// file_handler.hpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/header.hpp b/libs/asio/example/cpp03/http/server4/header.hpp
index e72f722a9d..2aa408e5fa 100644
--- a/libs/asio/example/http/server4/header.hpp
+++ b/libs/asio/example/cpp03/http/server4/header.hpp
@@ -2,7 +2,7 @@
// header.hpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/main.cpp b/libs/asio/example/cpp03/http/server4/main.cpp
index 16e6a24147..1befe57d8b 100644
--- a/libs/asio/example/http/server4/main.cpp
+++ b/libs/asio/example/cpp03/http/server4/main.cpp
@@ -2,7 +2,7 @@
// main.cpp
// ~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/mime_types.cpp b/libs/asio/example/cpp03/http/server4/mime_types.cpp
index 1b3ec7bf1d..0fea975c22 100644
--- a/libs/asio/example/http/server4/mime_types.cpp
+++ b/libs/asio/example/cpp03/http/server4/mime_types.cpp
@@ -2,7 +2,7 @@
// mime_types.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/mime_types.hpp b/libs/asio/example/cpp03/http/server4/mime_types.hpp
index 2f03577932..d3238f3e10 100644
--- a/libs/asio/example/http/server4/mime_types.hpp
+++ b/libs/asio/example/cpp03/http/server4/mime_types.hpp
@@ -2,7 +2,7 @@
// mime_types.hpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/reply.cpp b/libs/asio/example/cpp03/http/server4/reply.cpp
index f595654d89..0c61c35ca3 100644
--- a/libs/asio/example/http/server4/reply.cpp
+++ b/libs/asio/example/cpp03/http/server4/reply.cpp
@@ -2,7 +2,7 @@
// reply.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/reply.hpp b/libs/asio/example/cpp03/http/server4/reply.hpp
index 96c1fe5b5e..0c25da7b3a 100644
--- a/libs/asio/example/http/server4/reply.hpp
+++ b/libs/asio/example/cpp03/http/server4/reply.hpp
@@ -2,7 +2,7 @@
// reply.hpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/request.hpp b/libs/asio/example/cpp03/http/server4/request.hpp
index 30880955b1..481a003932 100644
--- a/libs/asio/example/http/server4/request.hpp
+++ b/libs/asio/example/cpp03/http/server4/request.hpp
@@ -2,7 +2,7 @@
// request.hpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/http/server4/request_parser.cpp b/libs/asio/example/cpp03/http/server4/request_parser.cpp
index fb19986a48..1fa468d564 100644
--- a/libs/asio/example/http/server4/request_parser.cpp
+++ b/libs/asio/example/cpp03/http/server4/request_parser.cpp
@@ -2,7 +2,7 @@
// request_parser.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -17,7 +17,8 @@
namespace http {
namespace server4 {
-#include "yield.hpp" // Enable the pseudo-keywords reenter, yield and fork.
+// Enable the pseudo-keywords reenter, yield and fork.
+#include <boost/asio/yield.hpp>
std::string request_parser::content_length_name_ = "Content-Length";
@@ -175,7 +176,8 @@ boost::tribool request_parser::consume(request& req, char c)
return true;
}
-#include "unyield.hpp" // Disable the pseudo-keywords reenter, yield and fork.
+// Disable the pseudo-keywords reenter, yield and fork.
+#include <boost/asio/unyield.hpp>
bool request_parser::is_char(int c)
{
diff --git a/libs/asio/example/http/server4/request_parser.hpp b/libs/asio/example/cpp03/http/server4/request_parser.hpp
index df01049ae6..0485cc9682 100644
--- a/libs/asio/example/http/server4/request_parser.hpp
+++ b/libs/asio/example/cpp03/http/server4/request_parser.hpp
@@ -2,7 +2,7 @@
// request_parser.hpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -14,7 +14,7 @@
#include <string>
#include <boost/logic/tribool.hpp>
#include <boost/tuple/tuple.hpp>
-#include "coroutine.hpp"
+#include <boost/asio/coroutine.hpp>
namespace http {
namespace server4 {
@@ -22,7 +22,7 @@ namespace server4 {
struct request;
/// Parser for incoming requests.
-class request_parser : coroutine
+class request_parser : boost::asio::coroutine
{
public:
/// Parse some data. The tribool return value is true when a complete request
diff --git a/libs/asio/example/http/server4/server.cpp b/libs/asio/example/cpp03/http/server4/server.cpp
index 81465dd63a..d315c7a5ce 100644
--- a/libs/asio/example/http/server4/server.cpp
+++ b/libs/asio/example/cpp03/http/server4/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -25,7 +25,8 @@ server::server(boost::asio::io_service& io_service,
acceptor_.reset(new tcp::acceptor(io_service, *resolver.resolve(query)));
}
-#include "yield.hpp" // Enable the pseudo-keywords reenter, yield and fork.
+// Enable the pseudo-keywords reenter, yield and fork.
+#include <boost/asio/yield.hpp>
void server::operator()(boost::system::error_code ec, std::size_t length)
{
@@ -113,7 +114,8 @@ void server::operator()(boost::system::error_code ec, std::size_t length)
// will be destroyed automatically after this function call returns.
}
-#include "unyield.hpp" // Disable the pseudo-keywords reenter, yield and fork.
+// Disable the pseudo-keywords reenter, yield and fork.
+#include <boost/asio/unyield.hpp>
} // namespace server4
} // namespace http
diff --git a/libs/asio/example/http/server4/server.hpp b/libs/asio/example/cpp03/http/server4/server.hpp
index 7a7e091a8b..dd68bb422b 100644
--- a/libs/asio/example/http/server4/server.hpp
+++ b/libs/asio/example/cpp03/http/server4/server.hpp
@@ -2,7 +2,7 @@
// server.hpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,7 +16,6 @@
#include <boost/array.hpp>
#include <boost/function.hpp>
#include <boost/shared_ptr.hpp>
-#include "coroutine.hpp"
#include "request_parser.hpp"
namespace http {
@@ -26,7 +25,7 @@ struct request;
struct reply;
/// The top-level coroutine of the HTTP server.
-class server : coroutine
+class server : boost::asio::coroutine
{
public:
/// Construct the server to listen on the specified TCP address and port, and
diff --git a/libs/asio/example/icmp/Jamfile b/libs/asio/example/cpp03/icmp/Jamfile
index 0da793676f..e7f02acf72 100644
--- a/libs/asio/example/icmp/Jamfile
+++ b/libs/asio/example/cpp03/icmp/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/icmp/Jamfile.v2 b/libs/asio/example/cpp03/icmp/Jamfile.v2
index a4e711d2d4..5a5dc99c76 100644
--- a/libs/asio/example/icmp/Jamfile.v2
+++ b/libs/asio/example/cpp03/icmp/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/icmp/icmp_header.hpp b/libs/asio/example/cpp03/icmp/icmp_header.hpp
index cfe443cef2..8a41ec1269 100644
--- a/libs/asio/example/icmp/icmp_header.hpp
+++ b/libs/asio/example/cpp03/icmp/icmp_header.hpp
@@ -2,7 +2,7 @@
// icmp_header.hpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/icmp/ipv4_header.hpp b/libs/asio/example/cpp03/icmp/ipv4_header.hpp
index ce4e5282a0..eaf1e20d31 100644
--- a/libs/asio/example/icmp/ipv4_header.hpp
+++ b/libs/asio/example/cpp03/icmp/ipv4_header.hpp
@@ -2,7 +2,7 @@
// ipv4_header.hpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/icmp/ping.cpp b/libs/asio/example/cpp03/icmp/ping.cpp
index 7f217ec9a5..b6c42cfa93 100644
--- a/libs/asio/example/icmp/ping.cpp
+++ b/libs/asio/example/cpp03/icmp/ping.cpp
@@ -2,7 +2,7 @@
// ping.cpp
// ~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -121,7 +121,7 @@ private:
static unsigned short get_identifier()
{
-#if defined(BOOST_WINDOWS)
+#if defined(BOOST_ASIO_WINDOWS)
return static_cast<unsigned short>(::GetCurrentProcessId());
#else
return static_cast<unsigned short>(::getpid());
@@ -145,7 +145,7 @@ int main(int argc, char* argv[])
if (argc != 2)
{
std::cerr << "Usage: ping <host>" << std::endl;
-#if !defined(BOOST_WINDOWS)
+#if !defined(BOOST_ASIO_WINDOWS)
std::cerr << "(You may need to run this program as root.)" << std::endl;
#endif
return 1;
diff --git a/libs/asio/example/invocation/Jamfile b/libs/asio/example/cpp03/invocation/Jamfile
index 60530db9b4..af6213fedd 100644
--- a/libs/asio/example/invocation/Jamfile
+++ b/libs/asio/example/cpp03/invocation/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/invocation/Jamfile.v2 b/libs/asio/example/cpp03/invocation/Jamfile.v2
index a7c6a9d6d2..a033ffab58 100644
--- a/libs/asio/example/invocation/Jamfile.v2
+++ b/libs/asio/example/cpp03/invocation/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/invocation/prioritised_handlers.cpp b/libs/asio/example/cpp03/invocation/prioritised_handlers.cpp
index 1392352749..a308500d5f 100644
--- a/libs/asio/example/invocation/prioritised_handlers.cpp
+++ b/libs/asio/example/cpp03/invocation/prioritised_handlers.cpp
@@ -2,7 +2,7 @@
// prioritised_handlers.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/iostreams/Jamfile b/libs/asio/example/cpp03/iostreams/Jamfile
index 0308cec074..ec5a98224d 100644
--- a/libs/asio/example/iostreams/Jamfile
+++ b/libs/asio/example/cpp03/iostreams/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/iostreams/Jamfile.v2 b/libs/asio/example/cpp03/iostreams/Jamfile.v2
index 19f3e86628..825acaa3d7 100644
--- a/libs/asio/example/iostreams/Jamfile.v2
+++ b/libs/asio/example/cpp03/iostreams/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/iostreams/daytime_client.cpp b/libs/asio/example/cpp03/iostreams/daytime_client.cpp
index 3f2c06727c..956a0929a2 100644
--- a/libs/asio/example/iostreams/daytime_client.cpp
+++ b/libs/asio/example/cpp03/iostreams/daytime_client.cpp
@@ -2,7 +2,7 @@
// daytime_client.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/iostreams/daytime_server.cpp b/libs/asio/example/cpp03/iostreams/daytime_server.cpp
index 3fe3f38bf0..1767ca6c50 100644
--- a/libs/asio/example/iostreams/daytime_server.cpp
+++ b/libs/asio/example/cpp03/iostreams/daytime_server.cpp
@@ -2,7 +2,7 @@
// daytime_server.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/iostreams/http_client.cpp b/libs/asio/example/cpp03/iostreams/http_client.cpp
index c2c2589836..e0e3934289 100644
--- a/libs/asio/example/iostreams/http_client.cpp
+++ b/libs/asio/example/cpp03/iostreams/http_client.cpp
@@ -2,7 +2,7 @@
// sync_client.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/local/Jamfile b/libs/asio/example/cpp03/local/Jamfile
index 240a91244e..ea5bec64d2 100644
--- a/libs/asio/example/local/Jamfile
+++ b/libs/asio/example/cpp03/local/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/local/Jamfile.v2 b/libs/asio/example/cpp03/local/Jamfile.v2
index 77227ee69a..d0c1dcab8f 100644
--- a/libs/asio/example/local/Jamfile.v2
+++ b/libs/asio/example/cpp03/local/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/local/connect_pair.cpp b/libs/asio/example/cpp03/local/connect_pair.cpp
index 041a45f129..1495917ef8 100644
--- a/libs/asio/example/local/connect_pair.cpp
+++ b/libs/asio/example/cpp03/local/connect_pair.cpp
@@ -2,7 +2,7 @@
// connect_pair.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/local/iostream_client.cpp b/libs/asio/example/cpp03/local/iostream_client.cpp
index ec406a4215..cf29322340 100644
--- a/libs/asio/example/local/iostream_client.cpp
+++ b/libs/asio/example/cpp03/local/iostream_client.cpp
@@ -2,7 +2,7 @@
// stream_client.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/local/stream_client.cpp b/libs/asio/example/cpp03/local/stream_client.cpp
index 2b6cc5148f..3fabed9c3e 100644
--- a/libs/asio/example/local/stream_client.cpp
+++ b/libs/asio/example/cpp03/local/stream_client.cpp
@@ -2,7 +2,7 @@
// stream_client.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/local/stream_server.cpp b/libs/asio/example/cpp03/local/stream_server.cpp
index 81342d9343..5ae14ccbff 100644
--- a/libs/asio/example/local/stream_server.cpp
+++ b/libs/asio/example/cpp03/local/stream_server.cpp
@@ -2,7 +2,7 @@
// stream_server.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -97,11 +97,12 @@ public:
if (!error)
{
new_session->start();
- new_session.reset(new session(io_service_));
- acceptor_.async_accept(new_session->socket(),
- boost::bind(&server::handle_accept, this, new_session,
- boost::asio::placeholders::error));
}
+
+ new_session.reset(new session(io_service_));
+ acceptor_.async_accept(new_session->socket(),
+ boost::bind(&server::handle_accept, this, new_session,
+ boost::asio::placeholders::error));
}
private:
diff --git a/libs/asio/example/multicast/Jamfile b/libs/asio/example/cpp03/multicast/Jamfile
index 69a165ced5..65d2587eb6 100644
--- a/libs/asio/example/multicast/Jamfile
+++ b/libs/asio/example/cpp03/multicast/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/multicast/Jamfile.v2 b/libs/asio/example/cpp03/multicast/Jamfile.v2
index 2efccf35ca..f9a64f0288 100644
--- a/libs/asio/example/multicast/Jamfile.v2
+++ b/libs/asio/example/cpp03/multicast/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/multicast/receiver.cpp b/libs/asio/example/cpp03/multicast/receiver.cpp
index 912c8e6eb3..ac375fbf99 100644
--- a/libs/asio/example/multicast/receiver.cpp
+++ b/libs/asio/example/cpp03/multicast/receiver.cpp
@@ -2,7 +2,7 @@
// receiver.cpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/multicast/sender.cpp b/libs/asio/example/cpp03/multicast/sender.cpp
index d4a3aab2be..e39d5af93f 100644
--- a/libs/asio/example/multicast/sender.cpp
+++ b/libs/asio/example/cpp03/multicast/sender.cpp
@@ -2,7 +2,7 @@
// sender.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/nonblocking/Jamfile b/libs/asio/example/cpp03/nonblocking/Jamfile
index 4914b46ab1..13e0a6fe45 100644
--- a/libs/asio/example/nonblocking/Jamfile
+++ b/libs/asio/example/cpp03/nonblocking/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/nonblocking/Jamfile.v2 b/libs/asio/example/cpp03/nonblocking/Jamfile.v2
index a4c980f1dd..b1c27d2ed8 100644
--- a/libs/asio/example/nonblocking/Jamfile.v2
+++ b/libs/asio/example/cpp03/nonblocking/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/nonblocking/third_party_lib.cpp b/libs/asio/example/cpp03/nonblocking/third_party_lib.cpp
index f623e2bf33..40e9a01c7a 100644
--- a/libs/asio/example/nonblocking/third_party_lib.cpp
+++ b/libs/asio/example/cpp03/nonblocking/third_party_lib.cpp
@@ -2,7 +2,7 @@
// third_party_lib.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/porthopper/Jamfile b/libs/asio/example/cpp03/porthopper/Jamfile
index e52179328f..76b111c639 100644
--- a/libs/asio/example/porthopper/Jamfile
+++ b/libs/asio/example/cpp03/porthopper/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/porthopper/Jamfile.v2 b/libs/asio/example/cpp03/porthopper/Jamfile.v2
index 2e65f4d5c5..2eb651119f 100644
--- a/libs/asio/example/porthopper/Jamfile.v2
+++ b/libs/asio/example/cpp03/porthopper/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/porthopper/client.cpp b/libs/asio/example/cpp03/porthopper/client.cpp
index ffae164b43..54c9fa04d7 100644
--- a/libs/asio/example/porthopper/client.cpp
+++ b/libs/asio/example/cpp03/porthopper/client.cpp
@@ -2,7 +2,7 @@
// client.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/porthopper/protocol.hpp b/libs/asio/example/cpp03/porthopper/protocol.hpp
index c49182997c..96436993b8 100644
--- a/libs/asio/example/porthopper/protocol.hpp
+++ b/libs/asio/example/cpp03/porthopper/protocol.hpp
@@ -2,7 +2,7 @@
// protocol.hpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/porthopper/server.cpp b/libs/asio/example/cpp03/porthopper/server.cpp
index 0703bddff9..83659e1c71 100644
--- a/libs/asio/example/porthopper/server.cpp
+++ b/libs/asio/example/cpp03/porthopper/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/serialization/Jamfile b/libs/asio/example/cpp03/serialization/Jamfile
index 34dc84399a..7f884380fc 100644
--- a/libs/asio/example/serialization/Jamfile
+++ b/libs/asio/example/cpp03/serialization/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/serialization/Jamfile.v2 b/libs/asio/example/cpp03/serialization/Jamfile.v2
index 73f2d33fa7..96f067af79 100644
--- a/libs/asio/example/serialization/Jamfile.v2
+++ b/libs/asio/example/cpp03/serialization/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/serialization/client.cpp b/libs/asio/example/cpp03/serialization/client.cpp
index 8b84d2d03f..e74bb619ec 100644
--- a/libs/asio/example/serialization/client.cpp
+++ b/libs/asio/example/cpp03/serialization/client.cpp
@@ -2,7 +2,7 @@
// client.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/serialization/connection.hpp b/libs/asio/example/cpp03/serialization/connection.hpp
index 4c480fc66f..3c34114741 100644
--- a/libs/asio/example/serialization/connection.hpp
+++ b/libs/asio/example/cpp03/serialization/connection.hpp
@@ -2,7 +2,7 @@
// connection.hpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/serialization/server.cpp b/libs/asio/example/cpp03/serialization/server.cpp
index 4dcca4574a..ed27dd0f9e 100644
--- a/libs/asio/example/serialization/server.cpp
+++ b/libs/asio/example/cpp03/serialization/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/serialization/stock.hpp b/libs/asio/example/cpp03/serialization/stock.hpp
index 98dd14aacd..1054cc9dae 100644
--- a/libs/asio/example/serialization/stock.hpp
+++ b/libs/asio/example/cpp03/serialization/stock.hpp
@@ -2,7 +2,7 @@
// stock.hpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/services/Jamfile b/libs/asio/example/cpp03/services/Jamfile
index 0503813091..083c917325 100644
--- a/libs/asio/example/services/Jamfile
+++ b/libs/asio/example/cpp03/services/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/services/Jamfile.v2 b/libs/asio/example/cpp03/services/Jamfile.v2
index d9237a675a..e263fdc3b4 100644
--- a/libs/asio/example/services/Jamfile.v2
+++ b/libs/asio/example/cpp03/services/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/services/basic_logger.hpp b/libs/asio/example/cpp03/services/basic_logger.hpp
index 1bc3540ca4..f5c9e921f2 100644
--- a/libs/asio/example/services/basic_logger.hpp
+++ b/libs/asio/example/cpp03/services/basic_logger.hpp
@@ -2,7 +2,7 @@
// basic_logger.hpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/services/daytime_client.cpp b/libs/asio/example/cpp03/services/daytime_client.cpp
index e54ee89c90..a09fa78638 100644
--- a/libs/asio/example/services/daytime_client.cpp
+++ b/libs/asio/example/cpp03/services/daytime_client.cpp
@@ -2,7 +2,7 @@
// daytime_client.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/services/logger.hpp b/libs/asio/example/cpp03/services/logger.hpp
index ef811d2a82..77ceb61ecf 100644
--- a/libs/asio/example/services/logger.hpp
+++ b/libs/asio/example/cpp03/services/logger.hpp
@@ -2,7 +2,7 @@
// logger.hpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/services/logger_service.cpp b/libs/asio/example/cpp03/services/logger_service.cpp
index ee43287ec6..4fd3018bd9 100644
--- a/libs/asio/example/services/logger_service.cpp
+++ b/libs/asio/example/cpp03/services/logger_service.cpp
@@ -2,7 +2,7 @@
// logger_service.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/services/logger_service.hpp b/libs/asio/example/cpp03/services/logger_service.hpp
index 165018df06..1315d5e681 100644
--- a/libs/asio/example/services/logger_service.hpp
+++ b/libs/asio/example/cpp03/services/logger_service.hpp
@@ -2,7 +2,7 @@
// logger_service.hpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/services/stream_socket_service.hpp b/libs/asio/example/cpp03/services/stream_socket_service.hpp
index c63d6f43d1..e503875e28 100644
--- a/libs/asio/example/services/stream_socket_service.hpp
+++ b/libs/asio/example/cpp03/services/stream_socket_service.hpp
@@ -2,7 +2,7 @@
// stream_socket_service.hpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/socks4/Jamfile b/libs/asio/example/cpp03/socks4/Jamfile
index 32e448aa10..b6d995cf46 100644
--- a/libs/asio/example/socks4/Jamfile
+++ b/libs/asio/example/cpp03/socks4/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/socks4/Jamfile.v2 b/libs/asio/example/cpp03/socks4/Jamfile.v2
index 1681e79c42..f326bf1e65 100644
--- a/libs/asio/example/socks4/Jamfile.v2
+++ b/libs/asio/example/cpp03/socks4/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/socks4/socks4.hpp b/libs/asio/example/cpp03/socks4/socks4.hpp
index fd617667ec..297e9ae30b 100644
--- a/libs/asio/example/socks4/socks4.hpp
+++ b/libs/asio/example/cpp03/socks4/socks4.hpp
@@ -2,7 +2,7 @@
// socks4.hpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/socks4/sync_client.cpp b/libs/asio/example/cpp03/socks4/sync_client.cpp
index 4aed77c87c..f6ce9b5032 100644
--- a/libs/asio/example/socks4/sync_client.cpp
+++ b/libs/asio/example/cpp03/socks4/sync_client.cpp
@@ -2,7 +2,7 @@
// sync_client.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/cpp03/spawn/Jamfile.v2 b/libs/asio/example/cpp03/spawn/Jamfile.v2
new file mode 100644
index 0000000000..d8b02ffefb
--- /dev/null
+++ b/libs/asio/example/cpp03/spawn/Jamfile.v2
@@ -0,0 +1,40 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+import os ;
+
+if [ os.name ] = SOLARIS
+{
+ lib socket ;
+ lib nsl ;
+}
+else if [ os.name ] = NT
+{
+ lib ws2_32 ;
+ lib mswsock ;
+}
+else if [ os.name ] = HPUX
+{
+ lib ipv6 ;
+}
+
+exe server
+ : echo_server.cpp
+ /boost/context//boost_context
+ /boost/coroutine//boost_coroutine
+ /boost/system//boost_system
+ : <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <os>SOLARIS:<library>socket
+ <os>SOLARIS:<library>nsl
+ <os>NT:<define>_WIN32_WINNT=0x0501
+ <os>NT,<toolset>gcc:<library>ws2_32
+ <os>NT,<toolset>gcc:<library>mswsock
+ <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
+ <os>HPUX:<library>ipv6
+ ;
diff --git a/libs/asio/example/cpp03/spawn/echo_server.cpp b/libs/asio/example/cpp03/spawn/echo_server.cpp
new file mode 100644
index 0000000000..9620f1bcb7
--- /dev/null
+++ b/libs/asio/example/cpp03/spawn/echo_server.cpp
@@ -0,0 +1,122 @@
+//
+// echo_server.cpp
+// ~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <boost/asio/deadline_timer.hpp>
+#include <boost/asio/io_service.hpp>
+#include <boost/asio/ip/tcp.hpp>
+#include <boost/asio/spawn.hpp>
+#include <boost/asio/write.hpp>
+#include <boost/bind.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/enable_shared_from_this.hpp>
+#include <iostream>
+
+using boost::asio::ip::tcp;
+
+class session : public boost::enable_shared_from_this<session>
+{
+public:
+ explicit session(boost::asio::io_service& io_service)
+ : strand_(io_service),
+ socket_(io_service),
+ timer_(io_service)
+ {
+ }
+
+ tcp::socket& socket()
+ {
+ return socket_;
+ }
+
+ void go()
+ {
+ boost::asio::spawn(strand_,
+ boost::bind(&session::echo,
+ shared_from_this(), _1));
+ boost::asio::spawn(strand_,
+ boost::bind(&session::timeout,
+ shared_from_this(), _1));
+ }
+
+private:
+ void echo(boost::asio::yield_context yield)
+ {
+ try
+ {
+ char data[128];
+ for (;;)
+ {
+ timer_.expires_from_now(boost::posix_time::seconds(10));
+ std::size_t n = socket_.async_read_some(boost::asio::buffer(data), yield);
+ boost::asio::async_write(socket_, boost::asio::buffer(data, n), yield);
+ }
+ }
+ catch (std::exception& e)
+ {
+ socket_.close();
+ timer_.cancel();
+ }
+ }
+
+ void timeout(boost::asio::yield_context yield)
+ {
+ while (socket_.is_open())
+ {
+ boost::system::error_code ignored_ec;
+ timer_.async_wait(yield[ignored_ec]);
+ if (timer_.expires_from_now() <= boost::posix_time::seconds(0))
+ socket_.close();
+ }
+ }
+
+ boost::asio::io_service::strand strand_;
+ tcp::socket socket_;
+ boost::asio::deadline_timer timer_;
+};
+
+void do_accept(boost::asio::io_service& io_service,
+ unsigned short port, boost::asio::yield_context yield)
+{
+ tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), port));
+
+ for (;;)
+ {
+ boost::system::error_code ec;
+ boost::shared_ptr<session> new_session(new session(io_service));
+ acceptor.async_accept(new_session->socket(), yield[ec]);
+ if (!ec) new_session->go();
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 2)
+ {
+ std::cerr << "Usage: echo_server <port>\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+
+ boost::asio::spawn(io_service,
+ boost::bind(do_accept,
+ boost::ref(io_service), atoi(argv[1]), _1));
+
+ io_service.run();
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/ssl/Jamfile b/libs/asio/example/cpp03/ssl/Jamfile
index d4c41f6fa6..1842915e2b 100644
--- a/libs/asio/example/ssl/Jamfile
+++ b/libs/asio/example/cpp03/ssl/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/ssl/Jamfile.v2 b/libs/asio/example/cpp03/ssl/Jamfile.v2
index 95095a482c..135141b17b 100644
--- a/libs/asio/example/ssl/Jamfile.v2
+++ b/libs/asio/example/cpp03/ssl/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/ssl/README b/libs/asio/example/cpp03/ssl/README
index ca3008a3b8..97c9acef23 100644
--- a/libs/asio/example/ssl/README
+++ b/libs/asio/example/cpp03/ssl/README
@@ -2,7 +2,7 @@ The passphrase for both the CA and server private keys is "test".
-------------------------------------------------------------------------------
-Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/ssl/ca.pem b/libs/asio/example/cpp03/ssl/ca.pem
index 45de7742b2..45de7742b2 100644
--- a/libs/asio/example/ssl/ca.pem
+++ b/libs/asio/example/cpp03/ssl/ca.pem
diff --git a/libs/asio/example/ssl/client.cpp b/libs/asio/example/cpp03/ssl/client.cpp
index 8220d524a7..7a04436f5a 100644
--- a/libs/asio/example/ssl/client.cpp
+++ b/libs/asio/example/cpp03/ssl/client.cpp
@@ -2,7 +2,7 @@
// client.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/ssl/dh512.pem b/libs/asio/example/cpp03/ssl/dh512.pem
index 14c53b2a21..14c53b2a21 100644
--- a/libs/asio/example/ssl/dh512.pem
+++ b/libs/asio/example/cpp03/ssl/dh512.pem
diff --git a/libs/asio/example/ssl/server.cpp b/libs/asio/example/cpp03/ssl/server.cpp
index 70ce6e6e6f..e95fa516f7 100644
--- a/libs/asio/example/ssl/server.cpp
+++ b/libs/asio/example/cpp03/ssl/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/ssl/server.pem b/libs/asio/example/cpp03/ssl/server.pem
index 5b2052d9e2..5b2052d9e2 100644
--- a/libs/asio/example/ssl/server.pem
+++ b/libs/asio/example/cpp03/ssl/server.pem
diff --git a/libs/asio/example/timeouts/Jamfile b/libs/asio/example/cpp03/timeouts/Jamfile
index 759f842ea1..cfe98fe04a 100644
--- a/libs/asio/example/timeouts/Jamfile
+++ b/libs/asio/example/cpp03/timeouts/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/timeouts/Jamfile.v2 b/libs/asio/example/cpp03/timeouts/Jamfile.v2
index fb04315d2e..8289415714 100644
--- a/libs/asio/example/timeouts/Jamfile.v2
+++ b/libs/asio/example/cpp03/timeouts/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/timeouts/async_tcp_client.cpp b/libs/asio/example/cpp03/timeouts/async_tcp_client.cpp
index 2ff9872480..a15f03f991 100644
--- a/libs/asio/example/timeouts/async_tcp_client.cpp
+++ b/libs/asio/example/cpp03/timeouts/async_tcp_client.cpp
@@ -2,7 +2,7 @@
// async_tcp_client.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/timeouts/blocking_tcp_client.cpp b/libs/asio/example/cpp03/timeouts/blocking_tcp_client.cpp
index 96dda15bc6..64dcb77645 100644
--- a/libs/asio/example/timeouts/blocking_tcp_client.cpp
+++ b/libs/asio/example/cpp03/timeouts/blocking_tcp_client.cpp
@@ -2,7 +2,7 @@
// blocking_tcp_client.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/timeouts/blocking_udp_client.cpp b/libs/asio/example/cpp03/timeouts/blocking_udp_client.cpp
index d5e31e062e..51ba811ae8 100644
--- a/libs/asio/example/timeouts/blocking_udp_client.cpp
+++ b/libs/asio/example/cpp03/timeouts/blocking_udp_client.cpp
@@ -2,7 +2,7 @@
// blocking_udp_client.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/timeouts/server.cpp b/libs/asio/example/cpp03/timeouts/server.cpp
index 3a17dce3e0..f8bce7b069 100644
--- a/libs/asio/example/timeouts/server.cpp
+++ b/libs/asio/example/cpp03/timeouts/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/timers/Jamfile b/libs/asio/example/cpp03/timers/Jamfile
index cdddb525c5..0aa01f321e 100644
--- a/libs/asio/example/timers/Jamfile
+++ b/libs/asio/example/cpp03/timers/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/timers/Jamfile.v2 b/libs/asio/example/cpp03/timers/Jamfile.v2
index 51ee388cc3..73379643e5 100644
--- a/libs/asio/example/timers/Jamfile.v2
+++ b/libs/asio/example/cpp03/timers/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/timers/tick_count_timer.cpp b/libs/asio/example/cpp03/timers/tick_count_timer.cpp
index d75f2276f6..aa84c84da7 100644
--- a/libs/asio/example/timers/tick_count_timer.cpp
+++ b/libs/asio/example/cpp03/timers/tick_count_timer.cpp
@@ -2,7 +2,7 @@
// tick_count_timer.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/timers/time_t_timer.cpp b/libs/asio/example/cpp03/timers/time_t_timer.cpp
index 4348019612..9ae42cee46 100644
--- a/libs/asio/example/timers/time_t_timer.cpp
+++ b/libs/asio/example/cpp03/timers/time_t_timer.cpp
@@ -2,7 +2,7 @@
// time_t_timer.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/Jamfile b/libs/asio/example/cpp03/tutorial/Jamfile
index 2f1fd89639..dd0fa3989e 100644
--- a/libs/asio/example/tutorial/Jamfile
+++ b/libs/asio/example/cpp03/tutorial/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/Jamfile.v2 b/libs/asio/example/cpp03/tutorial/Jamfile.v2
index 55a2a911ba..bd7b116ca6 100644
--- a/libs/asio/example/tutorial/Jamfile.v2
+++ b/libs/asio/example/cpp03/tutorial/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/daytime1/client.cpp b/libs/asio/example/cpp03/tutorial/daytime1/client.cpp
index 6b75f422a1..3959c0dfd2 100644
--- a/libs/asio/example/tutorial/daytime1/client.cpp
+++ b/libs/asio/example/cpp03/tutorial/daytime1/client.cpp
@@ -2,7 +2,7 @@
// client.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/daytime2/server.cpp b/libs/asio/example/cpp03/tutorial/daytime2/server.cpp
index 731ed2fc41..780d8739c5 100644
--- a/libs/asio/example/tutorial/daytime2/server.cpp
+++ b/libs/asio/example/cpp03/tutorial/daytime2/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/daytime3/server.cpp b/libs/asio/example/cpp03/tutorial/daytime3/server.cpp
index 861ae1bcad..4171b7f161 100644
--- a/libs/asio/example/tutorial/daytime3/server.cpp
+++ b/libs/asio/example/cpp03/tutorial/daytime3/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/daytime4/client.cpp b/libs/asio/example/cpp03/tutorial/daytime4/client.cpp
index fb3b0183ff..b41de359ff 100644
--- a/libs/asio/example/tutorial/daytime4/client.cpp
+++ b/libs/asio/example/cpp03/tutorial/daytime4/client.cpp
@@ -2,7 +2,7 @@
// client.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/daytime5/server.cpp b/libs/asio/example/cpp03/tutorial/daytime5/server.cpp
index c3fa0d5c9f..aab57c55ba 100644
--- a/libs/asio/example/tutorial/daytime5/server.cpp
+++ b/libs/asio/example/cpp03/tutorial/daytime5/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/daytime6/server.cpp b/libs/asio/example/cpp03/tutorial/daytime6/server.cpp
index 919d9361f4..5a72cb6aac 100644
--- a/libs/asio/example/tutorial/daytime6/server.cpp
+++ b/libs/asio/example/cpp03/tutorial/daytime6/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/daytime7/server.cpp b/libs/asio/example/cpp03/tutorial/daytime7/server.cpp
index 0a1420eae1..12d957c773 100644
--- a/libs/asio/example/tutorial/daytime7/server.cpp
+++ b/libs/asio/example/cpp03/tutorial/daytime7/server.cpp
@@ -2,7 +2,7 @@
// server.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/daytime_dox.txt b/libs/asio/example/cpp03/tutorial/daytime_dox.txt
index 3cc07d292e..8bef4fb56a 100644
--- a/libs/asio/example/tutorial/daytime_dox.txt
+++ b/libs/asio/example/cpp03/tutorial/daytime_dox.txt
@@ -1,5 +1,5 @@
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/index_dox.txt b/libs/asio/example/cpp03/tutorial/index_dox.txt
index 1136c4a0ab..47818f69fb 100644
--- a/libs/asio/example/tutorial/index_dox.txt
+++ b/libs/asio/example/cpp03/tutorial/index_dox.txt
@@ -1,5 +1,5 @@
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/timer1/timer.cpp b/libs/asio/example/cpp03/tutorial/timer1/timer.cpp
index de08f1248e..9239059d42 100644
--- a/libs/asio/example/tutorial/timer1/timer.cpp
+++ b/libs/asio/example/cpp03/tutorial/timer1/timer.cpp
@@ -2,7 +2,7 @@
// timer.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/timer2/timer.cpp b/libs/asio/example/cpp03/tutorial/timer2/timer.cpp
index 0454bec4bc..5921f5308e 100644
--- a/libs/asio/example/tutorial/timer2/timer.cpp
+++ b/libs/asio/example/cpp03/tutorial/timer2/timer.cpp
@@ -2,7 +2,7 @@
// timer.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/timer3/timer.cpp b/libs/asio/example/cpp03/tutorial/timer3/timer.cpp
index c482ebdf57..84f1dbcd35 100644
--- a/libs/asio/example/tutorial/timer3/timer.cpp
+++ b/libs/asio/example/cpp03/tutorial/timer3/timer.cpp
@@ -2,7 +2,7 @@
// timer.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/timer4/timer.cpp b/libs/asio/example/cpp03/tutorial/timer4/timer.cpp
index 03797f1aea..f428ae9b56 100644
--- a/libs/asio/example/tutorial/timer4/timer.cpp
+++ b/libs/asio/example/cpp03/tutorial/timer4/timer.cpp
@@ -2,7 +2,7 @@
// timer.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/tutorial/timer5/timer.cpp b/libs/asio/example/cpp03/tutorial/timer5/timer.cpp
index 678e37b6c4..6e87c54f16 100644
--- a/libs/asio/example/tutorial/timer5/timer.cpp
+++ b/libs/asio/example/cpp03/tutorial/timer5/timer.cpp
@@ -2,7 +2,7 @@
// timer.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -57,7 +57,7 @@ public:
}
private:
- boost::asio::strand strand_;
+ boost::asio::io_service::strand strand_;
boost::asio::deadline_timer timer1_;
boost::asio::deadline_timer timer2_;
int count_;
diff --git a/libs/asio/example/tutorial/timer_dox.txt b/libs/asio/example/cpp03/tutorial/timer_dox.txt
index 347e27d255..946355ca82 100644
--- a/libs/asio/example/tutorial/timer_dox.txt
+++ b/libs/asio/example/cpp03/tutorial/timer_dox.txt
@@ -1,5 +1,5 @@
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/windows/Jamfile b/libs/asio/example/cpp03/windows/Jamfile
index 3704405d9d..856a85f17e 100644
--- a/libs/asio/example/windows/Jamfile
+++ b/libs/asio/example/cpp03/windows/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/windows/Jamfile.v2 b/libs/asio/example/cpp03/windows/Jamfile.v2
index 6837ca7759..07ac2bdde2 100644
--- a/libs/asio/example/windows/Jamfile.v2
+++ b/libs/asio/example/cpp03/windows/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/windows/transmit_file.cpp b/libs/asio/example/cpp03/windows/transmit_file.cpp
index c1e00da32e..008b365e38 100644
--- a/libs/asio/example/windows/transmit_file.cpp
+++ b/libs/asio/example/cpp03/windows/transmit_file.cpp
@@ -2,7 +2,7 @@
// transmit_file.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/example/cpp11/allocation/Jamfile b/libs/asio/example/cpp11/allocation/Jamfile
new file mode 100644
index 0000000000..4d345ecf16
--- /dev/null
+++ b/libs/asio/example/cpp11/allocation/Jamfile
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+subproject libs/asio/example/allocation ;
+
+project boost : $(BOOST_ROOT) ;
+
+if $(UNIX)
+{
+ switch $(JAMUNAME)
+ {
+ case SunOS* :
+ {
+ SOCKET_LIBS = <find-library>socket <find-library>nsl ;
+ }
+ }
+}
+
+exe server
+ : <lib>@boost/libs/system/build/boost_system
+ server.cpp
+ : <include>$(BOOST_ROOT)
+ <include>../../../..
+ <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <mingw><*><find-library>ws2_32
+ <mingw><*><find-library>mswsock
+ $(SOCKET_LIBS)
+ ;
diff --git a/libs/asio/example/cpp11/allocation/Jamfile.v2 b/libs/asio/example/cpp11/allocation/Jamfile.v2
new file mode 100644
index 0000000000..84df930c86
--- /dev/null
+++ b/libs/asio/example/cpp11/allocation/Jamfile.v2
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+import os ;
+
+if [ os.name ] = SOLARIS
+{
+ lib socket ;
+ lib nsl ;
+}
+else if [ os.name ] = NT
+{
+ lib ws2_32 ;
+ lib mswsock ;
+}
+else if [ os.name ] = HPUX
+{
+ lib ipv6 ;
+}
+
+exe server
+ : server.cpp
+ /boost/system//boost_system
+ : <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <os>SOLARIS:<library>socket
+ <os>SOLARIS:<library>nsl
+ <os>NT:<define>_WIN32_WINNT=0x0501
+ <os>NT,<toolset>gcc:<library>ws2_32
+ <os>NT,<toolset>gcc:<library>mswsock
+ <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
+ <os>HPUX:<library>ipv6
+ ;
diff --git a/libs/asio/example/cpp11/allocation/server.cpp b/libs/asio/example/cpp11/allocation/server.cpp
new file mode 100644
index 0000000000..39b4d2a63d
--- /dev/null
+++ b/libs/asio/example/cpp11/allocation/server.cpp
@@ -0,0 +1,215 @@
+//
+// server.cpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <array>
+#include <cstdlib>
+#include <iostream>
+#include <memory>
+#include <type_traits>
+#include <utility>
+#include <boost/asio.hpp>
+
+using boost::asio::ip::tcp;
+
+// Class to manage the memory to be used for handler-based custom allocation.
+// It contains a single block of memory which may be returned for allocation
+// requests. If the memory is in use when an allocation request is made, the
+// allocator delegates allocation to the global heap.
+class handler_allocator
+{
+public:
+ handler_allocator()
+ : in_use_(false)
+ {
+ }
+
+ handler_allocator(const handler_allocator&) = delete;
+ handler_allocator& operator=(const handler_allocator&) = delete;
+
+ void* allocate(std::size_t size)
+ {
+ if (!in_use_ && size < sizeof(storage_))
+ {
+ in_use_ = true;
+ return &storage_;
+ }
+ else
+ {
+ return ::operator new(size);
+ }
+ }
+
+ void deallocate(void* pointer)
+ {
+ if (pointer == &storage_)
+ {
+ in_use_ = false;
+ }
+ else
+ {
+ ::operator delete(pointer);
+ }
+ }
+
+private:
+ // Storage space used for handler-based custom memory allocation.
+ typename std::aligned_storage<1024>::type storage_;
+
+ // Whether the handler-based custom allocation storage has been used.
+ bool in_use_;
+};
+
+// Wrapper class template for handler objects to allow handler memory
+// allocation to be customised. Calls to operator() are forwarded to the
+// encapsulated handler.
+template <typename Handler>
+class custom_alloc_handler
+{
+public:
+ custom_alloc_handler(handler_allocator& a, Handler h)
+ : allocator_(a),
+ handler_(h)
+ {
+ }
+
+ template <typename ...Args>
+ void operator()(Args&&... args)
+ {
+ handler_(std::forward<Args>(args)...);
+ }
+
+ friend void* asio_handler_allocate(std::size_t size,
+ custom_alloc_handler<Handler>* this_handler)
+ {
+ return this_handler->allocator_.allocate(size);
+ }
+
+ friend void asio_handler_deallocate(void* pointer, std::size_t /*size*/,
+ custom_alloc_handler<Handler>* this_handler)
+ {
+ this_handler->allocator_.deallocate(pointer);
+ }
+
+private:
+ handler_allocator& allocator_;
+ Handler handler_;
+};
+
+// Helper function to wrap a handler object to add custom allocation.
+template <typename Handler>
+inline custom_alloc_handler<Handler> make_custom_alloc_handler(
+ handler_allocator& a, Handler h)
+{
+ return custom_alloc_handler<Handler>(a, h);
+}
+
+class session
+ : public std::enable_shared_from_this<session>
+{
+public:
+ session(tcp::socket socket)
+ : socket_(std::move(socket))
+ {
+ }
+
+ void start()
+ {
+ do_read();
+ }
+
+private:
+ void do_read()
+ {
+ auto self(shared_from_this());
+ socket_.async_read_some(boost::asio::buffer(data_),
+ make_custom_alloc_handler(allocator_,
+ [this, self](boost::system::error_code ec, std::size_t length)
+ {
+ if (!ec)
+ {
+ do_write(length);
+ }
+ }));
+ }
+
+ void do_write(std::size_t length)
+ {
+ auto self(shared_from_this());
+ boost::asio::async_write(socket_, boost::asio::buffer(data_, length),
+ make_custom_alloc_handler(allocator_,
+ [this, self](boost::system::error_code ec, std::size_t /*length*/)
+ {
+ if (!ec)
+ {
+ do_read();
+ }
+ }));
+ }
+
+ // The socket used to communicate with the client.
+ tcp::socket socket_;
+
+ // Buffer used to store data received from the client.
+ std::array<char, 1024> data_;
+
+ // The allocator to use for handler-based custom memory allocation.
+ handler_allocator allocator_;
+};
+
+class server
+{
+public:
+ server(boost::asio::io_service& io_service, short port)
+ : acceptor_(io_service, tcp::endpoint(tcp::v4(), port)),
+ socket_(io_service)
+ {
+ do_accept();
+ }
+
+private:
+ void do_accept()
+ {
+ acceptor_.async_accept(socket_,
+ [this](boost::system::error_code ec)
+ {
+ if (!ec)
+ {
+ std::make_shared<session>(std::move(socket_))->start();
+ }
+
+ do_accept();
+ });
+ }
+
+ tcp::acceptor acceptor_;
+ tcp::socket socket_;
+};
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 2)
+ {
+ std::cerr << "Usage: server <port>\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+ server s(io_service, std::atoi(argv[1]));
+ io_service.run();
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/buffers/Jamfile b/libs/asio/example/cpp11/buffers/Jamfile
new file mode 100644
index 0000000000..152d1037d5
--- /dev/null
+++ b/libs/asio/example/cpp11/buffers/Jamfile
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+subproject libs/asio/example/buffers ;
+
+project boost : $(BOOST_ROOT) ;
+
+if $(UNIX)
+{
+ switch $(JAMUNAME)
+ {
+ case SunOS* :
+ {
+ SOCKET_LIBS = <find-library>socket <find-library>nsl ;
+ }
+ }
+}
+
+exe server
+ : <lib>@boost/libs/system/build/boost_system
+ reference_counted.cpp
+ : <include>$(BOOST_ROOT)
+ <include>../../../..
+ <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <mingw><*><find-library>ws2_32
+ <mingw><*><find-library>mswsock
+ $(SOCKET_LIBS)
+ ;
diff --git a/libs/asio/example/cpp11/buffers/Jamfile.v2 b/libs/asio/example/cpp11/buffers/Jamfile.v2
new file mode 100644
index 0000000000..95aacad8fe
--- /dev/null
+++ b/libs/asio/example/cpp11/buffers/Jamfile.v2
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+import os ;
+
+if [ os.name ] = SOLARIS
+{
+ lib socket ;
+ lib nsl ;
+}
+else if [ os.name ] = NT
+{
+ lib ws2_32 ;
+ lib mswsock ;
+}
+else if [ os.name ] = HPUX
+{
+ lib ipv6 ;
+}
+
+exe server
+ : reference_counted.cpp
+ /boost/system//boost_system
+ : <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <os>SOLARIS:<library>socket
+ <os>SOLARIS:<library>nsl
+ <os>NT:<define>_WIN32_WINNT=0x0501
+ <os>NT,<toolset>gcc:<library>ws2_32
+ <os>NT,<toolset>gcc:<library>mswsock
+ <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
+ <os>HPUX:<library>ipv6
+ ;
diff --git a/libs/asio/example/cpp11/buffers/reference_counted.cpp b/libs/asio/example/cpp11/buffers/reference_counted.cpp
new file mode 100644
index 0000000000..47d88de651
--- /dev/null
+++ b/libs/asio/example/cpp11/buffers/reference_counted.cpp
@@ -0,0 +1,123 @@
+//
+// reference_counted.cpp
+// ~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <boost/asio.hpp>
+#include <iostream>
+#include <memory>
+#include <utility>
+#include <vector>
+
+using boost::asio::ip::tcp;
+
+// A reference-counted non-modifiable buffer class.
+class shared_const_buffer
+{
+public:
+ // Construct from a std::string.
+ explicit shared_const_buffer(const std::string& data)
+ : data_(new std::vector<char>(data.begin(), data.end())),
+ buffer_(boost::asio::buffer(*data_))
+ {
+ }
+
+ // Implement the ConstBufferSequence requirements.
+ typedef boost::asio::const_buffer value_type;
+ typedef const boost::asio::const_buffer* const_iterator;
+ const boost::asio::const_buffer* begin() const { return &buffer_; }
+ const boost::asio::const_buffer* end() const { return &buffer_ + 1; }
+
+private:
+ std::shared_ptr<std::vector<char> > data_;
+ boost::asio::const_buffer buffer_;
+};
+
+class session
+ : public std::enable_shared_from_this<session>
+{
+public:
+ session(tcp::socket socket)
+ : socket_(std::move(socket))
+ {
+ }
+
+ void start()
+ {
+ do_write();
+ }
+
+private:
+ void do_write()
+ {
+ std::time_t now = std::time(0);
+ shared_const_buffer buffer(std::ctime(&now));
+
+ auto self(shared_from_this());
+ boost::asio::async_write(socket_, buffer,
+ [this, self](boost::system::error_code /*ec*/, std::size_t /*length*/)
+ {
+ });
+ }
+
+ // The socket used to communicate with the client.
+ tcp::socket socket_;
+};
+
+class server
+{
+public:
+ server(boost::asio::io_service& io_service, short port)
+ : acceptor_(io_service, tcp::endpoint(tcp::v4(), port)),
+ socket_(io_service)
+ {
+ do_accept();
+ }
+
+private:
+ void do_accept()
+ {
+ acceptor_.async_accept(socket_,
+ [this](boost::system::error_code ec)
+ {
+ if (!ec)
+ {
+ std::make_shared<session>(std::move(socket_))->start();
+ }
+
+ do_accept();
+ });
+ }
+
+ tcp::acceptor acceptor_;
+ tcp::socket socket_;
+};
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 2)
+ {
+ std::cerr << "Usage: reference_counted <port>\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+
+ server s(io_service, std::atoi(argv[1]));
+
+ io_service.run();
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/chat/Jamfile b/libs/asio/example/cpp11/chat/Jamfile
new file mode 100644
index 0000000000..b2498c29cc
--- /dev/null
+++ b/libs/asio/example/cpp11/chat/Jamfile
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+subproject libs/asio/example/chat ;
+
+project boost : $(BOOST_ROOT) ;
+
+if $(UNIX)
+{
+ switch $(JAMUNAME)
+ {
+ case SunOS* :
+ {
+ SOCKET_LIBS = <find-library>socket <find-library>nsl ;
+ }
+ }
+}
+
+exe chat_client
+ : <lib>@boost/libs/thread/build/boost_thread
+ <lib>@boost/libs/system/build/boost_system
+ chat_client.cpp
+ : <include>$(BOOST_ROOT)
+ <include>../../../..
+ <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <mingw><*><find-library>ws2_32
+ <mingw><*><find-library>mswsock
+ $(SOCKET_LIBS)
+ ;
+
+exe chat_server
+ : <lib>@boost/libs/thread/build/boost_thread
+ <lib>@boost/libs/system/build/boost_system
+ chat_server.cpp
+ : <include>$(BOOST_ROOT)
+ <include>../../../..
+ <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <mingw><*><find-library>ws2_32
+ <mingw><*><find-library>mswsock
+ $(SOCKET_LIBS)
+ ;
diff --git a/libs/asio/example/cpp11/chat/Jamfile.v2 b/libs/asio/example/cpp11/chat/Jamfile.v2
new file mode 100644
index 0000000000..c38049e28c
--- /dev/null
+++ b/libs/asio/example/cpp11/chat/Jamfile.v2
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+import os ;
+
+if [ os.name ] = SOLARIS
+{
+ lib socket ;
+ lib nsl ;
+}
+else if [ os.name ] = NT
+{
+ lib ws2_32 ;
+ lib mswsock ;
+}
+else if [ os.name ] = HPUX
+{
+ lib ipv6 ;
+}
+
+project
+ : requirements
+ <library>/boost/system//boost_system
+ <library>/boost/thread//boost_thread
+ <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <os>SOLARIS:<library>socket
+ <os>SOLARIS:<library>nsl
+ <os>NT:<define>_WIN32_WINNT=0x0501
+ <os>NT,<toolset>gcc:<library>ws2_32
+ <os>NT,<toolset>gcc:<library>mswsock
+ <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
+ <os>HPUX:<library>ipv6
+ ;
+
+exe chat_server : chat_server.cpp ;
+exe chat_client : chat_client.cpp ;
diff --git a/libs/asio/example/cpp11/chat/chat_client.cpp b/libs/asio/example/cpp11/chat/chat_client.cpp
new file mode 100644
index 0000000000..9287f0e2e0
--- /dev/null
+++ b/libs/asio/example/cpp11/chat/chat_client.cpp
@@ -0,0 +1,167 @@
+//
+// chat_client.cpp
+// ~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <cstdlib>
+#include <deque>
+#include <iostream>
+#include <thread>
+#include <boost/asio.hpp>
+#include "chat_message.hpp"
+
+using boost::asio::ip::tcp;
+
+typedef std::deque<chat_message> chat_message_queue;
+
+class chat_client
+{
+public:
+ chat_client(boost::asio::io_service& io_service,
+ tcp::resolver::iterator endpoint_iterator)
+ : io_service_(io_service),
+ socket_(io_service)
+ {
+ do_connect(endpoint_iterator);
+ }
+
+ void write(const chat_message& msg)
+ {
+ io_service_.post(
+ [this, msg]()
+ {
+ bool write_in_progress = !write_msgs_.empty();
+ write_msgs_.push_back(msg);
+ if (!write_in_progress)
+ {
+ do_write();
+ }
+ });
+ }
+
+ void close()
+ {
+ io_service_.post([this]() { socket_.close(); });
+ }
+
+private:
+ void do_connect(tcp::resolver::iterator endpoint_iterator)
+ {
+ boost::asio::async_connect(socket_, endpoint_iterator,
+ [this](boost::system::error_code ec, tcp::resolver::iterator)
+ {
+ if (!ec)
+ {
+ do_read_header();
+ }
+ });
+ }
+
+ void do_read_header()
+ {
+ boost::asio::async_read(socket_,
+ boost::asio::buffer(read_msg_.data(), chat_message::header_length),
+ [this](boost::system::error_code ec, std::size_t /*length*/)
+ {
+ if (!ec && read_msg_.decode_header())
+ {
+ do_read_body();
+ }
+ else
+ {
+ socket_.close();
+ }
+ });
+ }
+
+ void do_read_body()
+ {
+ boost::asio::async_read(socket_,
+ boost::asio::buffer(read_msg_.body(), read_msg_.body_length()),
+ [this](boost::system::error_code ec, std::size_t /*length*/)
+ {
+ if (!ec)
+ {
+ std::cout.write(read_msg_.body(), read_msg_.body_length());
+ std::cout << "\n";
+ do_read_header();
+ }
+ else
+ {
+ socket_.close();
+ }
+ });
+ }
+
+ void do_write()
+ {
+ boost::asio::async_write(socket_,
+ boost::asio::buffer(write_msgs_.front().data(),
+ write_msgs_.front().length()),
+ [this](boost::system::error_code ec, std::size_t /*length*/)
+ {
+ if (!ec)
+ {
+ write_msgs_.pop_front();
+ if (!write_msgs_.empty())
+ {
+ do_write();
+ }
+ }
+ else
+ {
+ socket_.close();
+ }
+ });
+ }
+
+private:
+ boost::asio::io_service& io_service_;
+ tcp::socket socket_;
+ chat_message read_msg_;
+ chat_message_queue write_msgs_;
+};
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 3)
+ {
+ std::cerr << "Usage: chat_client <host> <port>\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+
+ tcp::resolver resolver(io_service);
+ auto endpoint_iterator = resolver.resolve({ argv[1], argv[2] });
+ chat_client c(io_service, endpoint_iterator);
+
+ std::thread t([&io_service](){ io_service.run(); });
+
+ char line[chat_message::max_body_length + 1];
+ while (std::cin.getline(line, chat_message::max_body_length + 1))
+ {
+ chat_message msg;
+ msg.body_length(std::strlen(line));
+ std::memcpy(msg.body(), line, msg.body_length());
+ msg.encode_header();
+ c.write(msg);
+ }
+
+ c.close();
+ t.join();
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/chat/chat_message.hpp b/libs/asio/example/cpp11/chat/chat_message.hpp
new file mode 100644
index 0000000000..3751504447
--- /dev/null
+++ b/libs/asio/example/cpp11/chat/chat_message.hpp
@@ -0,0 +1,91 @@
+//
+// chat_message.hpp
+// ~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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 CHAT_MESSAGE_HPP
+#define CHAT_MESSAGE_HPP
+
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+
+class chat_message
+{
+public:
+ enum { header_length = 4 };
+ enum { max_body_length = 512 };
+
+ chat_message()
+ : body_length_(0)
+ {
+ }
+
+ const char* data() const
+ {
+ return data_;
+ }
+
+ char* data()
+ {
+ return data_;
+ }
+
+ std::size_t length() const
+ {
+ return header_length + body_length_;
+ }
+
+ const char* body() const
+ {
+ return data_ + header_length;
+ }
+
+ char* body()
+ {
+ return data_ + header_length;
+ }
+
+ std::size_t body_length() const
+ {
+ return body_length_;
+ }
+
+ void body_length(std::size_t new_length)
+ {
+ body_length_ = new_length;
+ if (body_length_ > max_body_length)
+ body_length_ = max_body_length;
+ }
+
+ bool decode_header()
+ {
+ char header[header_length + 1] = "";
+ std::strncat(header, data_, header_length);
+ body_length_ = std::atoi(header);
+ if (body_length_ > max_body_length)
+ {
+ body_length_ = 0;
+ return false;
+ }
+ return true;
+ }
+
+ void encode_header()
+ {
+ char header[header_length + 1] = "";
+ std::sprintf(header, "%4d", static_cast<int>(body_length_));
+ std::memcpy(data_, header, header_length);
+ }
+
+private:
+ char data_[header_length + max_body_length];
+ std::size_t body_length_;
+};
+
+#endif // CHAT_MESSAGE_HPP
diff --git a/libs/asio/example/cpp11/chat/chat_server.cpp b/libs/asio/example/cpp11/chat/chat_server.cpp
new file mode 100644
index 0000000000..abbe00b193
--- /dev/null
+++ b/libs/asio/example/cpp11/chat/chat_server.cpp
@@ -0,0 +1,229 @@
+//
+// chat_server.cpp
+// ~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <cstdlib>
+#include <deque>
+#include <iostream>
+#include <list>
+#include <memory>
+#include <set>
+#include <utility>
+#include <boost/asio.hpp>
+#include "chat_message.hpp"
+
+using boost::asio::ip::tcp;
+
+//----------------------------------------------------------------------
+
+typedef std::deque<chat_message> chat_message_queue;
+
+//----------------------------------------------------------------------
+
+class chat_participant
+{
+public:
+ virtual ~chat_participant() {}
+ virtual void deliver(const chat_message& msg) = 0;
+};
+
+typedef std::shared_ptr<chat_participant> chat_participant_ptr;
+
+//----------------------------------------------------------------------
+
+class chat_room
+{
+public:
+ void join(chat_participant_ptr participant)
+ {
+ participants_.insert(participant);
+ for (auto msg: recent_msgs_)
+ participant->deliver(msg);
+ }
+
+ void leave(chat_participant_ptr participant)
+ {
+ participants_.erase(participant);
+ }
+
+ void deliver(const chat_message& msg)
+ {
+ recent_msgs_.push_back(msg);
+ while (recent_msgs_.size() > max_recent_msgs)
+ recent_msgs_.pop_front();
+
+ for (auto participant: participants_)
+ participant->deliver(msg);
+ }
+
+private:
+ std::set<chat_participant_ptr> participants_;
+ enum { max_recent_msgs = 100 };
+ chat_message_queue recent_msgs_;
+};
+
+//----------------------------------------------------------------------
+
+class chat_session
+ : public chat_participant,
+ public std::enable_shared_from_this<chat_session>
+{
+public:
+ chat_session(tcp::socket socket, chat_room& room)
+ : socket_(std::move(socket)),
+ room_(room)
+ {
+ }
+
+ void start()
+ {
+ room_.join(shared_from_this());
+ do_read_header();
+ }
+
+ void deliver(const chat_message& msg)
+ {
+ bool write_in_progress = !write_msgs_.empty();
+ write_msgs_.push_back(msg);
+ if (!write_in_progress)
+ {
+ do_write();
+ }
+ }
+
+private:
+ void do_read_header()
+ {
+ auto self(shared_from_this());
+ boost::asio::async_read(socket_,
+ boost::asio::buffer(read_msg_.data(), chat_message::header_length),
+ [this, self](boost::system::error_code ec, std::size_t /*length*/)
+ {
+ if (!ec && read_msg_.decode_header())
+ {
+ do_read_body();
+ }
+ else
+ {
+ room_.leave(shared_from_this());
+ }
+ });
+ }
+
+ void do_read_body()
+ {
+ auto self(shared_from_this());
+ boost::asio::async_read(socket_,
+ boost::asio::buffer(read_msg_.body(), read_msg_.body_length()),
+ [this, self](boost::system::error_code ec, std::size_t /*length*/)
+ {
+ if (!ec)
+ {
+ room_.deliver(read_msg_);
+ do_read_header();
+ }
+ else
+ {
+ room_.leave(shared_from_this());
+ }
+ });
+ }
+
+ void do_write()
+ {
+ auto self(shared_from_this());
+ boost::asio::async_write(socket_,
+ boost::asio::buffer(write_msgs_.front().data(),
+ write_msgs_.front().length()),
+ [this, self](boost::system::error_code ec, std::size_t /*length*/)
+ {
+ if (!ec)
+ {
+ write_msgs_.pop_front();
+ if (!write_msgs_.empty())
+ {
+ do_write();
+ }
+ }
+ else
+ {
+ room_.leave(shared_from_this());
+ }
+ });
+ }
+
+ tcp::socket socket_;
+ chat_room& room_;
+ chat_message read_msg_;
+ chat_message_queue write_msgs_;
+};
+
+//----------------------------------------------------------------------
+
+class chat_server
+{
+public:
+ chat_server(boost::asio::io_service& io_service,
+ const tcp::endpoint& endpoint)
+ : acceptor_(io_service, endpoint),
+ socket_(io_service)
+ {
+ do_accept();
+ }
+
+private:
+ void do_accept()
+ {
+ acceptor_.async_accept(socket_,
+ [this](boost::system::error_code ec)
+ {
+ if (!ec)
+ {
+ std::make_shared<chat_session>(std::move(socket_), room_)->start();
+ }
+
+ do_accept();
+ });
+ }
+
+ tcp::acceptor acceptor_;
+ tcp::socket socket_;
+ chat_room room_;
+};
+
+//----------------------------------------------------------------------
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc < 2)
+ {
+ std::cerr << "Usage: chat_server <port> [<port> ...]\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+
+ std::list<chat_server> servers;
+ for (int i = 1; i < argc; ++i)
+ {
+ tcp::endpoint endpoint(tcp::v4(), std::atoi(argv[i]));
+ servers.emplace_back(io_service, endpoint);
+ }
+
+ io_service.run();
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/echo/Jamfile b/libs/asio/example/cpp11/echo/Jamfile
new file mode 100644
index 0000000000..6148b39388
--- /dev/null
+++ b/libs/asio/example/cpp11/echo/Jamfile
@@ -0,0 +1,63 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+subproject libs/asio/example/echo ;
+
+project boost : $(BOOST_ROOT) ;
+
+if $(UNIX)
+{
+ switch $(JAMUNAME)
+ {
+ case SunOS* :
+ {
+ SOCKET_LIBS = <find-library>socket <find-library>nsl ;
+ }
+ }
+}
+
+template asio_echo_example
+ : <lib>@boost/libs/thread/build/boost_thread
+ <lib>@boost/libs/system/build/boost_system
+ : <include>$(BOOST_ROOT)
+ <include>../../../..
+ <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <mingw><*><find-library>ws2_32
+ <mingw><*><find-library>mswsock
+ $(SOCKET_LIBS)
+ ;
+
+exe async_tcp_echo_server
+ : <template>asio_echo_example
+ async_tcp_echo_server.cpp
+ ;
+
+exe async_udp_echo_server
+ : <template>asio_echo_example
+ async_udp_echo_server.cpp
+ ;
+
+exe blocking_tcp_echo_client
+ : <template>asio_echo_example
+ blocking_tcp_echo_client.cpp
+ ;
+
+exe blocking_tcp_echo_server
+ : <template>asio_echo_example
+ blocking_tcp_echo_server.cpp
+ ;
+
+exe blocking_udp_echo_client
+ : <template>asio_echo_example
+ blocking_udp_echo_client.cpp
+ ;
+
+exe blocking_udp_echo_server
+ : <template>asio_echo_example
+ blocking_udp_echo_server.cpp
+ ;
diff --git a/libs/asio/example/cpp11/echo/Jamfile.v2 b/libs/asio/example/cpp11/echo/Jamfile.v2
new file mode 100644
index 0000000000..5ec2c0795c
--- /dev/null
+++ b/libs/asio/example/cpp11/echo/Jamfile.v2
@@ -0,0 +1,46 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+import os ;
+
+if [ os.name ] = SOLARIS
+{
+ lib socket ;
+ lib nsl ;
+}
+else if [ os.name ] = NT
+{
+ lib ws2_32 ;
+ lib mswsock ;
+}
+else if [ os.name ] = HPUX
+{
+ lib ipv6 ;
+}
+
+project
+ : requirements
+ <library>/boost/system//boost_system
+ <library>/boost/thread//boost_thread
+ <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <os>SOLARIS:<library>socket
+ <os>SOLARIS:<library>nsl
+ <os>NT:<define>_WIN32_WINNT=0x0501
+ <os>NT,<toolset>gcc:<library>ws2_32
+ <os>NT,<toolset>gcc:<library>mswsock
+ <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
+ <os>HPUX:<library>ipv6
+ ;
+
+exe async_tcp_echo_server : async_tcp_echo_server.cpp ;
+exe async_udp_echo_server : async_udp_echo_server.cpp ;
+exe blocking_tcp_echo_client : blocking_tcp_echo_client.cpp ;
+exe blocking_tcp_echo_server : blocking_tcp_echo_server.cpp ;
+exe blocking_udp_echo_client : blocking_udp_echo_client.cpp ;
+exe blocking_udp_echo_server : blocking_udp_echo_server.cpp ;
diff --git a/libs/asio/example/cpp11/echo/async_tcp_echo_server.cpp b/libs/asio/example/cpp11/echo/async_tcp_echo_server.cpp
new file mode 100644
index 0000000000..acc1cab397
--- /dev/null
+++ b/libs/asio/example/cpp11/echo/async_tcp_echo_server.cpp
@@ -0,0 +1,116 @@
+//
+// async_tcp_echo_server.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <cstdlib>
+#include <iostream>
+#include <memory>
+#include <utility>
+#include <boost/asio.hpp>
+
+using boost::asio::ip::tcp;
+
+class session
+ : public std::enable_shared_from_this<session>
+{
+public:
+ session(tcp::socket socket)
+ : socket_(std::move(socket))
+ {
+ }
+
+ void start()
+ {
+ do_read();
+ }
+
+private:
+ void do_read()
+ {
+ auto self(shared_from_this());
+ socket_.async_read_some(boost::asio::buffer(data_, max_length),
+ [this, self](boost::system::error_code ec, std::size_t length)
+ {
+ if (!ec)
+ {
+ do_write(length);
+ }
+ });
+ }
+
+ void do_write(std::size_t length)
+ {
+ auto self(shared_from_this());
+ boost::asio::async_write(socket_, boost::asio::buffer(data_, length),
+ [this, self](boost::system::error_code ec, std::size_t /*length*/)
+ {
+ if (!ec)
+ {
+ do_read();
+ }
+ });
+ }
+
+ tcp::socket socket_;
+ enum { max_length = 1024 };
+ char data_[max_length];
+};
+
+class server
+{
+public:
+ server(boost::asio::io_service& io_service, short port)
+ : acceptor_(io_service, tcp::endpoint(tcp::v4(), port)),
+ socket_(io_service)
+ {
+ do_accept();
+ }
+
+private:
+ void do_accept()
+ {
+ acceptor_.async_accept(socket_,
+ [this](boost::system::error_code ec)
+ {
+ if (!ec)
+ {
+ std::make_shared<session>(std::move(socket_))->start();
+ }
+
+ do_accept();
+ });
+ }
+
+ tcp::acceptor acceptor_;
+ tcp::socket socket_;
+};
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 2)
+ {
+ std::cerr << "Usage: async_tcp_echo_server <port>\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+
+ server s(io_service, std::atoi(argv[1]));
+
+ io_service.run();
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/echo/async_udp_echo_server.cpp b/libs/asio/example/cpp11/echo/async_udp_echo_server.cpp
new file mode 100644
index 0000000000..4dc04e45e1
--- /dev/null
+++ b/libs/asio/example/cpp11/echo/async_udp_echo_server.cpp
@@ -0,0 +1,82 @@
+//
+// async_udp_echo_server.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <cstdlib>
+#include <iostream>
+#include <boost/asio.hpp>
+
+using boost::asio::ip::udp;
+
+class server
+{
+public:
+ server(boost::asio::io_service& io_service, short port)
+ : socket_(io_service, udp::endpoint(udp::v4(), port))
+ {
+ do_receive();
+ }
+
+ void do_receive()
+ {
+ socket_.async_receive_from(
+ boost::asio::buffer(data_, max_length), sender_endpoint_,
+ [this](boost::system::error_code ec, std::size_t bytes_recvd)
+ {
+ if (!ec && bytes_recvd > 0)
+ {
+ do_send(bytes_recvd);
+ }
+ else
+ {
+ do_receive();
+ }
+ });
+ }
+
+ void do_send(std::size_t length)
+ {
+ socket_.async_send_to(
+ boost::asio::buffer(data_, length), sender_endpoint_,
+ [this](boost::system::error_code /*ec*/, std::size_t /*bytes_sent*/)
+ {
+ do_receive();
+ });
+ }
+
+private:
+ udp::socket socket_;
+ udp::endpoint sender_endpoint_;
+ enum { max_length = 1024 };
+ char data_[max_length];
+};
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 2)
+ {
+ std::cerr << "Usage: async_udp_echo_server <port>\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+
+ server s(io_service, std::atoi(argv[1]));
+
+ io_service.run();
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/echo/blocking_tcp_echo_client.cpp b/libs/asio/example/cpp11/echo/blocking_tcp_echo_client.cpp
new file mode 100644
index 0000000000..cdf05e7ea4
--- /dev/null
+++ b/libs/asio/example/cpp11/echo/blocking_tcp_echo_client.cpp
@@ -0,0 +1,55 @@
+//
+// blocking_tcp_echo_client.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <cstdlib>
+#include <cstring>
+#include <iostream>
+#include <boost/asio.hpp>
+
+using boost::asio::ip::tcp;
+
+enum { max_length = 1024 };
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 3)
+ {
+ std::cerr << "Usage: blocking_tcp_echo_client <host> <port>\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+
+ tcp::socket s(io_service);
+ tcp::resolver resolver(io_service);
+ boost::asio::connect(s, resolver.resolve({argv[1], argv[2]}));
+
+ std::cout << "Enter message: ";
+ char request[max_length];
+ std::cin.getline(request, max_length);
+ size_t request_length = std::strlen(request);
+ boost::asio::write(s, boost::asio::buffer(request, request_length));
+
+ char reply[max_length];
+ size_t reply_length = boost::asio::read(s,
+ boost::asio::buffer(reply, request_length));
+ std::cout << "Reply is: ";
+ std::cout.write(reply, reply_length);
+ std::cout << "\n";
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/echo/blocking_tcp_echo_server.cpp b/libs/asio/example/cpp11/echo/blocking_tcp_echo_server.cpp
new file mode 100644
index 0000000000..79ae155411
--- /dev/null
+++ b/libs/asio/example/cpp11/echo/blocking_tcp_echo_server.cpp
@@ -0,0 +1,76 @@
+//
+// blocking_tcp_echo_server.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <cstdlib>
+#include <iostream>
+#include <thread>
+#include <utility>
+#include <boost/asio.hpp>
+
+using boost::asio::ip::tcp;
+
+const int max_length = 1024;
+
+void session(tcp::socket sock)
+{
+ try
+ {
+ for (;;)
+ {
+ char data[max_length];
+
+ boost::system::error_code error;
+ size_t length = sock.read_some(boost::asio::buffer(data), error);
+ if (error == boost::asio::error::eof)
+ break; // Connection closed cleanly by peer.
+ else if (error)
+ throw boost::system::system_error(error); // Some other error.
+
+ boost::asio::write(sock, boost::asio::buffer(data, length));
+ }
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception in thread: " << e.what() << "\n";
+ }
+}
+
+void server(boost::asio::io_service& io_service, unsigned short port)
+{
+ tcp::acceptor a(io_service, tcp::endpoint(tcp::v4(), port));
+ for (;;)
+ {
+ tcp::socket sock(io_service);
+ a.accept(sock);
+ std::thread(session, std::move(sock)).detach();
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 2)
+ {
+ std::cerr << "Usage: blocking_tcp_echo_server <port>\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+
+ server(io_service, std::atoi(argv[1]));
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/echo/blocking_udp_echo_client.cpp b/libs/asio/example/cpp11/echo/blocking_udp_echo_client.cpp
new file mode 100644
index 0000000000..02bda23236
--- /dev/null
+++ b/libs/asio/example/cpp11/echo/blocking_udp_echo_client.cpp
@@ -0,0 +1,57 @@
+//
+// blocking_udp_echo_client.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <cstdlib>
+#include <cstring>
+#include <iostream>
+#include <boost/asio.hpp>
+
+using boost::asio::ip::udp;
+
+enum { max_length = 1024 };
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 3)
+ {
+ std::cerr << "Usage: blocking_udp_echo_client <host> <port>\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+
+ udp::socket s(io_service, udp::endpoint(udp::v4(), 0));
+
+ udp::resolver resolver(io_service);
+ udp::endpoint endpoint = *resolver.resolve({udp::v4(), argv[1], argv[2]});
+
+ std::cout << "Enter message: ";
+ char request[max_length];
+ std::cin.getline(request, max_length);
+ size_t request_length = std::strlen(request);
+ s.send_to(boost::asio::buffer(request, request_length), endpoint);
+
+ char reply[max_length];
+ udp::endpoint sender_endpoint;
+ size_t reply_length = s.receive_from(
+ boost::asio::buffer(reply, max_length), sender_endpoint);
+ std::cout << "Reply is: ";
+ std::cout.write(reply, reply_length);
+ std::cout << "\n";
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/echo/blocking_udp_echo_server.cpp b/libs/asio/example/cpp11/echo/blocking_udp_echo_server.cpp
new file mode 100644
index 0000000000..fddaf1e3ea
--- /dev/null
+++ b/libs/asio/example/cpp11/echo/blocking_udp_echo_server.cpp
@@ -0,0 +1,52 @@
+//
+// blocking_udp_echo_server.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <cstdlib>
+#include <iostream>
+#include <boost/asio.hpp>
+
+using boost::asio::ip::udp;
+
+enum { max_length = 1024 };
+
+void server(boost::asio::io_service& io_service, unsigned short port)
+{
+ udp::socket sock(io_service, udp::endpoint(udp::v4(), port));
+ for (;;)
+ {
+ char data[max_length];
+ udp::endpoint sender_endpoint;
+ size_t length = sock.receive_from(
+ boost::asio::buffer(data, max_length), sender_endpoint);
+ sock.send_to(boost::asio::buffer(data, length), sender_endpoint);
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 2)
+ {
+ std::cerr << "Usage: blocking_udp_echo_server <port>\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+
+ server(io_service, std::atoi(argv[1]));
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/futures/Jamfile b/libs/asio/example/cpp11/futures/Jamfile
new file mode 100644
index 0000000000..6320be7f69
--- /dev/null
+++ b/libs/asio/example/cpp11/futures/Jamfile
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+subproject libs/asio/example/buffers ;
+
+project boost : $(BOOST_ROOT) ;
+
+if $(UNIX)
+{
+ switch $(JAMUNAME)
+ {
+ case SunOS* :
+ {
+ SOCKET_LIBS = <find-library>socket <find-library>nsl ;
+ }
+ }
+}
+
+exe server
+ : <lib>@boost/libs/system/build/boost_system
+ daytime_client.cpp
+ : <include>$(BOOST_ROOT)
+ <include>../../../..
+ <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <mingw><*><find-library>ws2_32
+ <mingw><*><find-library>mswsock
+ $(SOCKET_LIBS)
+ ;
diff --git a/libs/asio/example/cpp11/futures/Jamfile.v2 b/libs/asio/example/cpp11/futures/Jamfile.v2
new file mode 100644
index 0000000000..7d0643dafb
--- /dev/null
+++ b/libs/asio/example/cpp11/futures/Jamfile.v2
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+import os ;
+
+if [ os.name ] = SOLARIS
+{
+ lib socket ;
+ lib nsl ;
+}
+else if [ os.name ] = NT
+{
+ lib ws2_32 ;
+ lib mswsock ;
+}
+else if [ os.name ] = HPUX
+{
+ lib ipv6 ;
+}
+
+exe server
+ : daytime_client.cpp
+ /boost/system//boost_system
+ : <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <os>SOLARIS:<library>socket
+ <os>SOLARIS:<library>nsl
+ <os>NT:<define>_WIN32_WINNT=0x0501
+ <os>NT,<toolset>gcc:<library>ws2_32
+ <os>NT,<toolset>gcc:<library>mswsock
+ <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
+ <os>HPUX:<library>ipv6
+ ;
diff --git a/libs/asio/example/cpp11/futures/daytime_client.cpp b/libs/asio/example/cpp11/futures/daytime_client.cpp
new file mode 100644
index 0000000000..b87d4015e6
--- /dev/null
+++ b/libs/asio/example/cpp11/futures/daytime_client.cpp
@@ -0,0 +1,94 @@
+//
+// daytime_client.cpp
+// ~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <array>
+#include <future>
+#include <iostream>
+#include <thread>
+#include <boost/asio/io_service.hpp>
+#include <boost/asio/ip/udp.hpp>
+#include <boost/asio/use_future.hpp>
+
+using boost::asio::ip::udp;
+
+void get_daytime(boost::asio::io_service& io_service, const char* hostname)
+{
+ try
+ {
+ udp::resolver resolver(io_service);
+
+ std::future<udp::resolver::iterator> iter =
+ resolver.async_resolve(
+ {udp::v4(), hostname, "daytime"},
+ boost::asio::use_future);
+
+ // The async_resolve operation above returns the endpoint iterator as a
+ // future value that is not retrieved ...
+
+ udp::socket socket(io_service, udp::v4());
+
+ std::array<char, 1> send_buf = {{ 0 }};
+ std::future<std::size_t> send_length =
+ socket.async_send_to(boost::asio::buffer(send_buf),
+ *iter.get(), // ... until here. This call may block.
+ boost::asio::use_future);
+
+ // Do other things here while the send completes.
+
+ send_length.get(); // Blocks until the send is complete. Throws any errors.
+
+ std::array<char, 128> recv_buf;
+ udp::endpoint sender_endpoint;
+ std::future<std::size_t> recv_length =
+ socket.async_receive_from(
+ boost::asio::buffer(recv_buf),
+ sender_endpoint,
+ boost::asio::use_future);
+
+ // Do other things here while the receive completes.
+
+ std::cout.write(
+ recv_buf.data(),
+ recv_length.get()); // Blocks until receive is complete.
+ }
+ catch (std::system_error& e)
+ {
+ std::cerr << e.what() << std::endl;
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 2)
+ {
+ std::cerr << "Usage: daytime_client <host>" << std::endl;
+ return 1;
+ }
+
+ // We run the io_service off in its own thread so that it operates
+ // completely asynchronously with respect to the rest of the program.
+ boost::asio::io_service io_service;
+ boost::asio::io_service::work work(io_service);
+ std::thread thread([&io_service](){ io_service.run(); });
+
+ get_daytime(io_service, argv[1]);
+
+ io_service.stop();
+ thread.join();
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << e.what() << std::endl;
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/http/server/Jamfile b/libs/asio/example/cpp11/http/server/Jamfile
new file mode 100644
index 0000000000..38d596bc26
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/Jamfile
@@ -0,0 +1,41 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+subproject libs/asio/example/http/server ;
+
+project boost : $(BOOST_ROOT) ;
+
+if $(UNIX)
+{
+ switch $(JAMUNAME)
+ {
+ case SunOS* :
+ {
+ SOCKET_LIBS = <find-library>socket <find-library>nsl ;
+ }
+ }
+}
+
+exe http_server
+ : <lib>@boost/libs/thread/build/boost_thread
+ <lib>@boost/libs/system/build/boost_system
+ connection.cpp
+ connection_manager.cpp
+ main.cpp
+ mime_types.cpp
+ reply.cpp
+ request_handler.cpp
+ request_parser.cpp
+ server.cpp
+ : <include>$(BOOST_ROOT)
+ <include>../../../../..
+ <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <mingw><*><find-library>ws2_32
+ <mingw><*><find-library>mswsock
+ $(SOCKET_LIBS)
+ ;
diff --git a/libs/asio/example/cpp11/http/server/Jamfile.v2 b/libs/asio/example/cpp11/http/server/Jamfile.v2
new file mode 100644
index 0000000000..0ebe0e2d27
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/Jamfile.v2
@@ -0,0 +1,46 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+import os ;
+
+if [ os.name ] = SOLARIS
+{
+ lib socket ;
+ lib nsl ;
+}
+else if [ os.name ] = NT
+{
+ lib ws2_32 ;
+ lib mswsock ;
+}
+else if [ os.name ] = HPUX
+{
+ lib ipv6 ;
+}
+
+exe server
+ : connection.cpp
+ connection_manager.cpp
+ main.cpp
+ mime_types.cpp
+ reply.cpp
+ request_handler.cpp
+ request_parser.cpp
+ server.cpp
+ /boost/system//boost_system
+ /boost/thread//boost_thread
+ : <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <os>SOLARIS:<library>socket
+ <os>SOLARIS:<library>nsl
+ <os>NT:<define>_WIN32_WINNT=0x0501
+ <os>NT,<toolset>gcc:<library>ws2_32
+ <os>NT,<toolset>gcc:<library>mswsock
+ <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
+ <os>HPUX:<library>ipv6
+ ;
diff --git a/libs/asio/example/cpp11/http/server/connection.cpp b/libs/asio/example/cpp11/http/server/connection.cpp
new file mode 100644
index 0000000000..26bca7031b
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/connection.cpp
@@ -0,0 +1,94 @@
+//
+// connection.cpp
+// ~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include "connection.hpp"
+#include <utility>
+#include <vector>
+#include "connection_manager.hpp"
+#include "request_handler.hpp"
+
+namespace http {
+namespace server {
+
+connection::connection(boost::asio::ip::tcp::socket socket,
+ connection_manager& manager, request_handler& handler)
+ : socket_(std::move(socket)),
+ connection_manager_(manager),
+ request_handler_(handler)
+{
+}
+
+void connection::start()
+{
+ do_read();
+}
+
+void connection::stop()
+{
+ socket_.close();
+}
+
+void connection::do_read()
+{
+ auto self(shared_from_this());
+ socket_.async_read_some(boost::asio::buffer(buffer_),
+ [this, self](boost::system::error_code ec, std::size_t bytes_transferred)
+ {
+ if (!ec)
+ {
+ request_parser::result_type result;
+ std::tie(result, std::ignore) = request_parser_.parse(
+ request_, buffer_.data(), buffer_.data() + bytes_transferred);
+
+ if (result == request_parser::good)
+ {
+ request_handler_.handle_request(request_, reply_);
+ do_write();
+ }
+ else if (result == request_parser::bad)
+ {
+ reply_ = reply::stock_reply(reply::bad_request);
+ do_write();
+ }
+ else
+ {
+ do_read();
+ }
+ }
+ else if (ec != boost::asio::error::operation_aborted)
+ {
+ connection_manager_.stop(shared_from_this());
+ }
+ });
+}
+
+void connection::do_write()
+{
+ auto self(shared_from_this());
+ boost::asio::async_write(socket_, reply_.to_buffers(),
+ [this, self](boost::system::error_code ec, std::size_t)
+ {
+ if (!ec)
+ {
+ // Initiate graceful connection closure.
+ boost::system::error_code ignored_ec;
+ socket_.shutdown(boost::asio::ip::tcp::socket::shutdown_both,
+ ignored_ec);
+ }
+
+ if (ec != boost::asio::error::operation_aborted)
+ {
+ connection_manager_.stop(shared_from_this());
+ }
+ });
+}
+
+} // namespace server
+} // namespace http
diff --git a/libs/asio/example/cpp11/http/server/connection.hpp b/libs/asio/example/cpp11/http/server/connection.hpp
new file mode 100644
index 0000000000..5dd8bf84d3
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/connection.hpp
@@ -0,0 +1,79 @@
+//
+// connection.hpp
+// ~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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 HTTP_CONNECTION_HPP
+#define HTTP_CONNECTION_HPP
+
+#include <array>
+#include <memory>
+#include <boost/asio.hpp>
+#include "reply.hpp"
+#include "request.hpp"
+#include "request_handler.hpp"
+#include "request_parser.hpp"
+
+namespace http {
+namespace server {
+
+class connection_manager;
+
+/// Represents a single connection from a client.
+class connection
+ : public std::enable_shared_from_this<connection>
+{
+public:
+ connection(const connection&) = delete;
+ connection& operator=(const connection&) = delete;
+
+ /// Construct a connection with the given socket.
+ explicit connection(boost::asio::ip::tcp::socket socket,
+ connection_manager& manager, request_handler& handler);
+
+ /// Start the first asynchronous operation for the connection.
+ void start();
+
+ /// Stop all asynchronous operations associated with the connection.
+ void stop();
+
+private:
+ /// Perform an asynchronous read operation.
+ void do_read();
+
+ /// Perform an asynchronous write operation.
+ void do_write();
+
+ /// Socket for the connection.
+ boost::asio::ip::tcp::socket socket_;
+
+ /// The manager for this connection.
+ connection_manager& connection_manager_;
+
+ /// The handler used to process the incoming request.
+ request_handler& request_handler_;
+
+ /// Buffer for incoming data.
+ std::array<char, 8192> buffer_;
+
+ /// The incoming request.
+ request request_;
+
+ /// The parser for the incoming request.
+ request_parser request_parser_;
+
+ /// The reply to be sent back to the client.
+ reply reply_;
+};
+
+typedef std::shared_ptr<connection> connection_ptr;
+
+} // namespace server
+} // namespace http
+
+#endif // HTTP_CONNECTION_HPP
diff --git a/libs/asio/example/cpp11/http/server/connection_manager.cpp b/libs/asio/example/cpp11/http/server/connection_manager.cpp
new file mode 100644
index 0000000000..831dbfab78
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/connection_manager.cpp
@@ -0,0 +1,40 @@
+//
+// connection_manager.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include "connection_manager.hpp"
+
+namespace http {
+namespace server {
+
+connection_manager::connection_manager()
+{
+}
+
+void connection_manager::start(connection_ptr c)
+{
+ connections_.insert(c);
+ c->start();
+}
+
+void connection_manager::stop(connection_ptr c)
+{
+ connections_.erase(c);
+ c->stop();
+}
+
+void connection_manager::stop_all()
+{
+ for (auto c: connections_)
+ c->stop();
+ connections_.clear();
+}
+
+} // namespace server
+} // namespace http
diff --git a/libs/asio/example/cpp11/http/server/connection_manager.hpp b/libs/asio/example/cpp11/http/server/connection_manager.hpp
new file mode 100644
index 0000000000..e54baf9a8b
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/connection_manager.hpp
@@ -0,0 +1,48 @@
+//
+// connection_manager.hpp
+// ~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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 HTTP_CONNECTION_MANAGER_HPP
+#define HTTP_CONNECTION_MANAGER_HPP
+
+#include <set>
+#include "connection.hpp"
+
+namespace http {
+namespace server {
+
+/// Manages open connections so that they may be cleanly stopped when the server
+/// needs to shut down.
+class connection_manager
+{
+public:
+ connection_manager(const connection_manager&) = delete;
+ connection_manager& operator=(const connection_manager&) = delete;
+
+ /// Construct a connection manager.
+ connection_manager();
+
+ /// Add the specified connection to the manager and start it.
+ void start(connection_ptr c);
+
+ /// Stop the specified connection.
+ void stop(connection_ptr c);
+
+ /// Stop all connections.
+ void stop_all();
+
+private:
+ /// The managed connections.
+ std::set<connection_ptr> connections_;
+};
+
+} // namespace server
+} // namespace http
+
+#endif // HTTP_CONNECTION_MANAGER_HPP
diff --git a/libs/asio/example/cpp11/http/server/header.hpp b/libs/asio/example/cpp11/http/server/header.hpp
new file mode 100644
index 0000000000..b2375afea2
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/header.hpp
@@ -0,0 +1,28 @@
+//
+// header.hpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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 HTTP_HEADER_HPP
+#define HTTP_HEADER_HPP
+
+#include <string>
+
+namespace http {
+namespace server {
+
+struct header
+{
+ std::string name;
+ std::string value;
+};
+
+} // namespace server
+} // namespace http
+
+#endif // HTTP_HEADER_HPP
diff --git a/libs/asio/example/cpp11/http/server/main.cpp b/libs/asio/example/cpp11/http/server/main.cpp
new file mode 100644
index 0000000000..1a885e99e4
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/main.cpp
@@ -0,0 +1,43 @@
+//
+// main.cpp
+// ~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <iostream>
+#include <string>
+#include <boost/asio.hpp>
+#include "server.hpp"
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ // Check command line arguments.
+ if (argc != 4)
+ {
+ std::cerr << "Usage: http_server <address> <port> <doc_root>\n";
+ std::cerr << " For IPv4, try:\n";
+ std::cerr << " receiver 0.0.0.0 80 .\n";
+ std::cerr << " For IPv6, try:\n";
+ std::cerr << " receiver 0::0 80 .\n";
+ return 1;
+ }
+
+ // Initialise the server.
+ http::server::server s(argv[1], argv[2], argv[3]);
+
+ // Run the server until stopped.
+ s.run();
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/cpp11/http/server/mime_types.cpp b/libs/asio/example/cpp11/http/server/mime_types.cpp
new file mode 100644
index 0000000000..e749452d8c
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/mime_types.cpp
@@ -0,0 +1,45 @@
+//
+// mime_types.cpp
+// ~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include "mime_types.hpp"
+
+namespace http {
+namespace server {
+namespace mime_types {
+
+struct mapping
+{
+ const char* extension;
+ const char* mime_type;
+} mappings[] =
+{
+ { "gif", "image/gif" },
+ { "htm", "text/html" },
+ { "html", "text/html" },
+ { "jpg", "image/jpeg" },
+ { "png", "image/png" }
+};
+
+std::string extension_to_type(const std::string& extension)
+{
+ for (mapping m: mappings)
+ {
+ if (m.extension == extension)
+ {
+ return m.mime_type;
+ }
+ }
+
+ return "text/plain";
+}
+
+} // namespace mime_types
+} // namespace server
+} // namespace http
diff --git a/libs/asio/example/cpp11/http/server/mime_types.hpp b/libs/asio/example/cpp11/http/server/mime_types.hpp
new file mode 100644
index 0000000000..21f737e584
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/mime_types.hpp
@@ -0,0 +1,27 @@
+//
+// mime_types.hpp
+// ~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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 HTTP_MIME_TYPES_HPP
+#define HTTP_MIME_TYPES_HPP
+
+#include <string>
+
+namespace http {
+namespace server {
+namespace mime_types {
+
+/// Convert a file extension into a MIME type.
+std::string extension_to_type(const std::string& extension);
+
+} // namespace mime_types
+} // namespace server
+} // namespace http
+
+#endif // HTTP_MIME_TYPES_HPP
diff --git a/libs/asio/example/cpp11/http/server/reply.cpp b/libs/asio/example/cpp11/http/server/reply.cpp
new file mode 100644
index 0000000000..983de65f84
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/reply.cpp
@@ -0,0 +1,255 @@
+//
+// reply.cpp
+// ~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include "reply.hpp"
+#include <string>
+
+namespace http {
+namespace server {
+
+namespace status_strings {
+
+const std::string ok =
+ "HTTP/1.0 200 OK\r\n";
+const std::string created =
+ "HTTP/1.0 201 Created\r\n";
+const std::string accepted =
+ "HTTP/1.0 202 Accepted\r\n";
+const std::string no_content =
+ "HTTP/1.0 204 No Content\r\n";
+const std::string multiple_choices =
+ "HTTP/1.0 300 Multiple Choices\r\n";
+const std::string moved_permanently =
+ "HTTP/1.0 301 Moved Permanently\r\n";
+const std::string moved_temporarily =
+ "HTTP/1.0 302 Moved Temporarily\r\n";
+const std::string not_modified =
+ "HTTP/1.0 304 Not Modified\r\n";
+const std::string bad_request =
+ "HTTP/1.0 400 Bad Request\r\n";
+const std::string unauthorized =
+ "HTTP/1.0 401 Unauthorized\r\n";
+const std::string forbidden =
+ "HTTP/1.0 403 Forbidden\r\n";
+const std::string not_found =
+ "HTTP/1.0 404 Not Found\r\n";
+const std::string internal_server_error =
+ "HTTP/1.0 500 Internal Server Error\r\n";
+const std::string not_implemented =
+ "HTTP/1.0 501 Not Implemented\r\n";
+const std::string bad_gateway =
+ "HTTP/1.0 502 Bad Gateway\r\n";
+const std::string service_unavailable =
+ "HTTP/1.0 503 Service Unavailable\r\n";
+
+boost::asio::const_buffer to_buffer(reply::status_type status)
+{
+ switch (status)
+ {
+ case reply::ok:
+ return boost::asio::buffer(ok);
+ case reply::created:
+ return boost::asio::buffer(created);
+ case reply::accepted:
+ return boost::asio::buffer(accepted);
+ case reply::no_content:
+ return boost::asio::buffer(no_content);
+ case reply::multiple_choices:
+ return boost::asio::buffer(multiple_choices);
+ case reply::moved_permanently:
+ return boost::asio::buffer(moved_permanently);
+ case reply::moved_temporarily:
+ return boost::asio::buffer(moved_temporarily);
+ case reply::not_modified:
+ return boost::asio::buffer(not_modified);
+ case reply::bad_request:
+ return boost::asio::buffer(bad_request);
+ case reply::unauthorized:
+ return boost::asio::buffer(unauthorized);
+ case reply::forbidden:
+ return boost::asio::buffer(forbidden);
+ case reply::not_found:
+ return boost::asio::buffer(not_found);
+ case reply::internal_server_error:
+ return boost::asio::buffer(internal_server_error);
+ case reply::not_implemented:
+ return boost::asio::buffer(not_implemented);
+ case reply::bad_gateway:
+ return boost::asio::buffer(bad_gateway);
+ case reply::service_unavailable:
+ return boost::asio::buffer(service_unavailable);
+ default:
+ return boost::asio::buffer(internal_server_error);
+ }
+}
+
+} // namespace status_strings
+
+namespace misc_strings {
+
+const char name_value_separator[] = { ':', ' ' };
+const char crlf[] = { '\r', '\n' };
+
+} // namespace misc_strings
+
+std::vector<boost::asio::const_buffer> reply::to_buffers()
+{
+ std::vector<boost::asio::const_buffer> buffers;
+ buffers.push_back(status_strings::to_buffer(status));
+ for (std::size_t i = 0; i < headers.size(); ++i)
+ {
+ header& h = headers[i];
+ buffers.push_back(boost::asio::buffer(h.name));
+ buffers.push_back(boost::asio::buffer(misc_strings::name_value_separator));
+ buffers.push_back(boost::asio::buffer(h.value));
+ buffers.push_back(boost::asio::buffer(misc_strings::crlf));
+ }
+ buffers.push_back(boost::asio::buffer(misc_strings::crlf));
+ buffers.push_back(boost::asio::buffer(content));
+ return buffers;
+}
+
+namespace stock_replies {
+
+const char ok[] = "";
+const char created[] =
+ "<html>"
+ "<head><title>Created</title></head>"
+ "<body><h1>201 Created</h1></body>"
+ "</html>";
+const char accepted[] =
+ "<html>"
+ "<head><title>Accepted</title></head>"
+ "<body><h1>202 Accepted</h1></body>"
+ "</html>";
+const char no_content[] =
+ "<html>"
+ "<head><title>No Content</title></head>"
+ "<body><h1>204 Content</h1></body>"
+ "</html>";
+const char multiple_choices[] =
+ "<html>"
+ "<head><title>Multiple Choices</title></head>"
+ "<body><h1>300 Multiple Choices</h1></body>"
+ "</html>";
+const char moved_permanently[] =
+ "<html>"
+ "<head><title>Moved Permanently</title></head>"
+ "<body><h1>301 Moved Permanently</h1></body>"
+ "</html>";
+const char moved_temporarily[] =
+ "<html>"
+ "<head><title>Moved Temporarily</title></head>"
+ "<body><h1>302 Moved Temporarily</h1></body>"
+ "</html>";
+const char not_modified[] =
+ "<html>"
+ "<head><title>Not Modified</title></head>"
+ "<body><h1>304 Not Modified</h1></body>"
+ "</html>";
+const char bad_request[] =
+ "<html>"
+ "<head><title>Bad Request</title></head>"
+ "<body><h1>400 Bad Request</h1></body>"
+ "</html>";
+const char unauthorized[] =
+ "<html>"
+ "<head><title>Unauthorized</title></head>"
+ "<body><h1>401 Unauthorized</h1></body>"
+ "</html>";
+const char forbidden[] =
+ "<html>"
+ "<head><title>Forbidden</title></head>"
+ "<body><h1>403 Forbidden</h1></body>"
+ "</html>";
+const char not_found[] =
+ "<html>"
+ "<head><title>Not Found</title></head>"
+ "<body><h1>404 Not Found</h1></body>"
+ "</html>";
+const char internal_server_error[] =
+ "<html>"
+ "<head><title>Internal Server Error</title></head>"
+ "<body><h1>500 Internal Server Error</h1></body>"
+ "</html>";
+const char not_implemented[] =
+ "<html>"
+ "<head><title>Not Implemented</title></head>"
+ "<body><h1>501 Not Implemented</h1></body>"
+ "</html>";
+const char bad_gateway[] =
+ "<html>"
+ "<head><title>Bad Gateway</title></head>"
+ "<body><h1>502 Bad Gateway</h1></body>"
+ "</html>";
+const char service_unavailable[] =
+ "<html>"
+ "<head><title>Service Unavailable</title></head>"
+ "<body><h1>503 Service Unavailable</h1></body>"
+ "</html>";
+
+std::string to_string(reply::status_type status)
+{
+ switch (status)
+ {
+ case reply::ok:
+ return ok;
+ case reply::created:
+ return created;
+ case reply::accepted:
+ return accepted;
+ case reply::no_content:
+ return no_content;
+ case reply::multiple_choices:
+ return multiple_choices;
+ case reply::moved_permanently:
+ return moved_permanently;
+ case reply::moved_temporarily:
+ return moved_temporarily;
+ case reply::not_modified:
+ return not_modified;
+ case reply::bad_request:
+ return bad_request;
+ case reply::unauthorized:
+ return unauthorized;
+ case reply::forbidden:
+ return forbidden;
+ case reply::not_found:
+ return not_found;
+ case reply::internal_server_error:
+ return internal_server_error;
+ case reply::not_implemented:
+ return not_implemented;
+ case reply::bad_gateway:
+ return bad_gateway;
+ case reply::service_unavailable:
+ return service_unavailable;
+ default:
+ return internal_server_error;
+ }
+}
+
+} // namespace stock_replies
+
+reply reply::stock_reply(reply::status_type status)
+{
+ reply rep;
+ rep.status = status;
+ rep.content = stock_replies::to_string(status);
+ rep.headers.resize(2);
+ rep.headers[0].name = "Content-Length";
+ rep.headers[0].value = std::to_string(rep.content.size());
+ rep.headers[1].name = "Content-Type";
+ rep.headers[1].value = "text/html";
+ return rep;
+}
+
+} // namespace server
+} // namespace http
diff --git a/libs/asio/example/cpp11/http/server/reply.hpp b/libs/asio/example/cpp11/http/server/reply.hpp
new file mode 100644
index 0000000000..9757df4931
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/reply.hpp
@@ -0,0 +1,64 @@
+//
+// reply.hpp
+// ~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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 HTTP_REPLY_HPP
+#define HTTP_REPLY_HPP
+
+#include <string>
+#include <vector>
+#include <boost/asio.hpp>
+#include "header.hpp"
+
+namespace http {
+namespace server {
+
+/// A reply to be sent to a client.
+struct reply
+{
+ /// The status of the reply.
+ enum status_type
+ {
+ ok = 200,
+ created = 201,
+ accepted = 202,
+ no_content = 204,
+ multiple_choices = 300,
+ moved_permanently = 301,
+ moved_temporarily = 302,
+ not_modified = 304,
+ bad_request = 400,
+ unauthorized = 401,
+ forbidden = 403,
+ not_found = 404,
+ internal_server_error = 500,
+ not_implemented = 501,
+ bad_gateway = 502,
+ service_unavailable = 503
+ } status;
+
+ /// The headers to be included in the reply.
+ std::vector<header> headers;
+
+ /// The content to be sent in the reply.
+ std::string content;
+
+ /// Convert the reply into a vector of buffers. The buffers do not own the
+ /// underlying memory blocks, therefore the reply object must remain valid and
+ /// not be changed until the write operation has completed.
+ std::vector<boost::asio::const_buffer> to_buffers();
+
+ /// Get a stock reply.
+ static reply stock_reply(status_type status);
+};
+
+} // namespace server
+} // namespace http
+
+#endif // HTTP_REPLY_HPP
diff --git a/libs/asio/example/cpp11/http/server/request.hpp b/libs/asio/example/cpp11/http/server/request.hpp
new file mode 100644
index 0000000000..3e2250186e
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/request.hpp
@@ -0,0 +1,34 @@
+//
+// request.hpp
+// ~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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 HTTP_REQUEST_HPP
+#define HTTP_REQUEST_HPP
+
+#include <string>
+#include <vector>
+#include "header.hpp"
+
+namespace http {
+namespace server {
+
+/// A request received from a client.
+struct request
+{
+ std::string method;
+ std::string uri;
+ int http_version_major;
+ int http_version_minor;
+ std::vector<header> headers;
+};
+
+} // namespace server
+} // namespace http
+
+#endif // HTTP_REQUEST_HPP
diff --git a/libs/asio/example/cpp11/http/server/request_handler.cpp b/libs/asio/example/cpp11/http/server/request_handler.cpp
new file mode 100644
index 0000000000..8546ea84af
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/request_handler.cpp
@@ -0,0 +1,121 @@
+//
+// request_handler.cpp
+// ~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include "request_handler.hpp"
+#include <fstream>
+#include <sstream>
+#include <string>
+#include "mime_types.hpp"
+#include "reply.hpp"
+#include "request.hpp"
+
+namespace http {
+namespace server {
+
+request_handler::request_handler(const std::string& doc_root)
+ : doc_root_(doc_root)
+{
+}
+
+void request_handler::handle_request(const request& req, reply& rep)
+{
+ // Decode url to path.
+ std::string request_path;
+ if (!url_decode(req.uri, request_path))
+ {
+ rep = reply::stock_reply(reply::bad_request);
+ return;
+ }
+
+ // Request path must be absolute and not contain "..".
+ if (request_path.empty() || request_path[0] != '/'
+ || request_path.find("..") != std::string::npos)
+ {
+ rep = reply::stock_reply(reply::bad_request);
+ return;
+ }
+
+ // If path ends in slash (i.e. is a directory) then add "index.html".
+ if (request_path[request_path.size() - 1] == '/')
+ {
+ request_path += "index.html";
+ }
+
+ // Determine the file extension.
+ std::size_t last_slash_pos = request_path.find_last_of("/");
+ std::size_t last_dot_pos = request_path.find_last_of(".");
+ std::string extension;
+ if (last_dot_pos != std::string::npos && last_dot_pos > last_slash_pos)
+ {
+ extension = request_path.substr(last_dot_pos + 1);
+ }
+
+ // Open the file to send back.
+ std::string full_path = doc_root_ + request_path;
+ std::ifstream is(full_path.c_str(), std::ios::in | std::ios::binary);
+ if (!is)
+ {
+ rep = reply::stock_reply(reply::not_found);
+ return;
+ }
+
+ // Fill out the reply to be sent to the client.
+ rep.status = reply::ok;
+ char buf[512];
+ while (is.read(buf, sizeof(buf)).gcount() > 0)
+ rep.content.append(buf, is.gcount());
+ rep.headers.resize(2);
+ rep.headers[0].name = "Content-Length";
+ rep.headers[0].value = std::to_string(rep.content.size());
+ rep.headers[1].name = "Content-Type";
+ rep.headers[1].value = mime_types::extension_to_type(extension);
+}
+
+bool request_handler::url_decode(const std::string& in, std::string& out)
+{
+ out.clear();
+ out.reserve(in.size());
+ for (std::size_t i = 0; i < in.size(); ++i)
+ {
+ if (in[i] == '%')
+ {
+ if (i + 3 <= in.size())
+ {
+ int value = 0;
+ std::istringstream is(in.substr(i + 1, 2));
+ if (is >> std::hex >> value)
+ {
+ out += static_cast<char>(value);
+ i += 2;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else if (in[i] == '+')
+ {
+ out += ' ';
+ }
+ else
+ {
+ out += in[i];
+ }
+ }
+ return true;
+}
+
+} // namespace server
+} // namespace http
diff --git a/libs/asio/example/cpp11/http/server/request_handler.hpp b/libs/asio/example/cpp11/http/server/request_handler.hpp
new file mode 100644
index 0000000000..a10fa3562e
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/request_handler.hpp
@@ -0,0 +1,47 @@
+//
+// request_handler.hpp
+// ~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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 HTTP_REQUEST_HANDLER_HPP
+#define HTTP_REQUEST_HANDLER_HPP
+
+#include <string>
+
+namespace http {
+namespace server {
+
+struct reply;
+struct request;
+
+/// The common handler for all incoming requests.
+class request_handler
+{
+public:
+ request_handler(const request_handler&) = delete;
+ request_handler& operator=(const request_handler&) = delete;
+
+ /// Construct with a directory containing files to be served.
+ explicit request_handler(const std::string& doc_root);
+
+ /// Handle a request and produce a reply.
+ void handle_request(const request& req, reply& rep);
+
+private:
+ /// The directory containing the files to be served.
+ std::string doc_root_;
+
+ /// Perform URL-decoding on a string. Returns false if the encoding was
+ /// invalid.
+ static bool url_decode(const std::string& in, std::string& out);
+};
+
+} // namespace server
+} // namespace http
+
+#endif // HTTP_REQUEST_HANDLER_HPP
diff --git a/libs/asio/example/cpp11/http/server/request_parser.cpp b/libs/asio/example/cpp11/http/server/request_parser.cpp
new file mode 100644
index 0000000000..2abf8fc6e5
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/request_parser.cpp
@@ -0,0 +1,315 @@
+//
+// request_parser.cpp
+// ~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include "request_parser.hpp"
+#include "request.hpp"
+
+namespace http {
+namespace server {
+
+request_parser::request_parser()
+ : state_(method_start)
+{
+}
+
+void request_parser::reset()
+{
+ state_ = method_start;
+}
+
+request_parser::result_type request_parser::consume(request& req, char input)
+{
+ switch (state_)
+ {
+ case method_start:
+ if (!is_char(input) || is_ctl(input) || is_tspecial(input))
+ {
+ return bad;
+ }
+ else
+ {
+ state_ = method;
+ req.method.push_back(input);
+ return indeterminate;
+ }
+ case method:
+ if (input == ' ')
+ {
+ state_ = uri;
+ return indeterminate;
+ }
+ else if (!is_char(input) || is_ctl(input) || is_tspecial(input))
+ {
+ return bad;
+ }
+ else
+ {
+ req.method.push_back(input);
+ return indeterminate;
+ }
+ case uri:
+ if (input == ' ')
+ {
+ state_ = http_version_h;
+ return indeterminate;
+ }
+ else if (is_ctl(input))
+ {
+ return bad;
+ }
+ else
+ {
+ req.uri.push_back(input);
+ return indeterminate;
+ }
+ case http_version_h:
+ if (input == 'H')
+ {
+ state_ = http_version_t_1;
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case http_version_t_1:
+ if (input == 'T')
+ {
+ state_ = http_version_t_2;
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case http_version_t_2:
+ if (input == 'T')
+ {
+ state_ = http_version_p;
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case http_version_p:
+ if (input == 'P')
+ {
+ state_ = http_version_slash;
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case http_version_slash:
+ if (input == '/')
+ {
+ req.http_version_major = 0;
+ req.http_version_minor = 0;
+ state_ = http_version_major_start;
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case http_version_major_start:
+ if (is_digit(input))
+ {
+ req.http_version_major = req.http_version_major * 10 + input - '0';
+ state_ = http_version_major;
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case http_version_major:
+ if (input == '.')
+ {
+ state_ = http_version_minor_start;
+ return indeterminate;
+ }
+ else if (is_digit(input))
+ {
+ req.http_version_major = req.http_version_major * 10 + input - '0';
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case http_version_minor_start:
+ if (is_digit(input))
+ {
+ req.http_version_minor = req.http_version_minor * 10 + input - '0';
+ state_ = http_version_minor;
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case http_version_minor:
+ if (input == '\r')
+ {
+ state_ = expecting_newline_1;
+ return indeterminate;
+ }
+ else if (is_digit(input))
+ {
+ req.http_version_minor = req.http_version_minor * 10 + input - '0';
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case expecting_newline_1:
+ if (input == '\n')
+ {
+ state_ = header_line_start;
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case header_line_start:
+ if (input == '\r')
+ {
+ state_ = expecting_newline_3;
+ return indeterminate;
+ }
+ else if (!req.headers.empty() && (input == ' ' || input == '\t'))
+ {
+ state_ = header_lws;
+ return indeterminate;
+ }
+ else if (!is_char(input) || is_ctl(input) || is_tspecial(input))
+ {
+ return bad;
+ }
+ else
+ {
+ req.headers.push_back(header());
+ req.headers.back().name.push_back(input);
+ state_ = header_name;
+ return indeterminate;
+ }
+ case header_lws:
+ if (input == '\r')
+ {
+ state_ = expecting_newline_2;
+ return indeterminate;
+ }
+ else if (input == ' ' || input == '\t')
+ {
+ return indeterminate;
+ }
+ else if (is_ctl(input))
+ {
+ return bad;
+ }
+ else
+ {
+ state_ = header_value;
+ req.headers.back().value.push_back(input);
+ return indeterminate;
+ }
+ case header_name:
+ if (input == ':')
+ {
+ state_ = space_before_header_value;
+ return indeterminate;
+ }
+ else if (!is_char(input) || is_ctl(input) || is_tspecial(input))
+ {
+ return bad;
+ }
+ else
+ {
+ req.headers.back().name.push_back(input);
+ return indeterminate;
+ }
+ case space_before_header_value:
+ if (input == ' ')
+ {
+ state_ = header_value;
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case header_value:
+ if (input == '\r')
+ {
+ state_ = expecting_newline_2;
+ return indeterminate;
+ }
+ else if (is_ctl(input))
+ {
+ return bad;
+ }
+ else
+ {
+ req.headers.back().value.push_back(input);
+ return indeterminate;
+ }
+ case expecting_newline_2:
+ if (input == '\n')
+ {
+ state_ = header_line_start;
+ return indeterminate;
+ }
+ else
+ {
+ return bad;
+ }
+ case expecting_newline_3:
+ return (input == '\n') ? good : bad;
+ default:
+ return bad;
+ }
+}
+
+bool request_parser::is_char(int c)
+{
+ return c >= 0 && c <= 127;
+}
+
+bool request_parser::is_ctl(int c)
+{
+ return (c >= 0 && c <= 31) || (c == 127);
+}
+
+bool request_parser::is_tspecial(int c)
+{
+ switch (c)
+ {
+ case '(': case ')': case '<': case '>': case '@':
+ case ',': case ';': case ':': case '\\': case '"':
+ case '/': case '[': case ']': case '?': case '=':
+ case '{': case '}': case ' ': case '\t':
+ return true;
+ default:
+ return false;
+ }
+}
+
+bool request_parser::is_digit(int c)
+{
+ return c >= '0' && c <= '9';
+}
+
+} // namespace server
+} // namespace http
diff --git a/libs/asio/example/cpp11/http/server/request_parser.hpp b/libs/asio/example/cpp11/http/server/request_parser.hpp
new file mode 100644
index 0000000000..822474f104
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/request_parser.hpp
@@ -0,0 +1,96 @@
+//
+// request_parser.hpp
+// ~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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 HTTP_REQUEST_PARSER_HPP
+#define HTTP_REQUEST_PARSER_HPP
+
+#include <tuple>
+
+namespace http {
+namespace server {
+
+struct request;
+
+/// Parser for incoming requests.
+class request_parser
+{
+public:
+ /// Construct ready to parse the request method.
+ request_parser();
+
+ /// Reset to initial parser state.
+ void reset();
+
+ /// Result of parse.
+ enum result_type { good, bad, indeterminate };
+
+ /// Parse some data. The enum return value is good when a complete request has
+ /// been parsed, bad if the data is invalid, indeterminate when more data is
+ /// required. The InputIterator return value indicates how much of the input
+ /// has been consumed.
+ template <typename InputIterator>
+ std::tuple<result_type, InputIterator> parse(request& req,
+ InputIterator begin, InputIterator end)
+ {
+ while (begin != end)
+ {
+ result_type result = consume(req, *begin++);
+ if (result == good || result == bad)
+ return std::make_tuple(result, begin);
+ }
+ return std::make_tuple(indeterminate, begin);
+ }
+
+private:
+ /// Handle the next character of input.
+ result_type consume(request& req, char input);
+
+ /// Check if a byte is an HTTP character.
+ static bool is_char(int c);
+
+ /// Check if a byte is an HTTP control character.
+ static bool is_ctl(int c);
+
+ /// Check if a byte is defined as an HTTP tspecial character.
+ static bool is_tspecial(int c);
+
+ /// Check if a byte is a digit.
+ static bool is_digit(int c);
+
+ /// The current state of the parser.
+ enum state
+ {
+ method_start,
+ method,
+ uri,
+ http_version_h,
+ http_version_t_1,
+ http_version_t_2,
+ http_version_p,
+ http_version_slash,
+ http_version_major_start,
+ http_version_major,
+ http_version_minor_start,
+ http_version_minor,
+ expecting_newline_1,
+ header_line_start,
+ header_lws,
+ header_name,
+ space_before_header_value,
+ header_value,
+ expecting_newline_2,
+ expecting_newline_3
+ } state_;
+};
+
+} // namespace server
+} // namespace http
+
+#endif // HTTP_REQUEST_PARSER_HPP
diff --git a/libs/asio/example/cpp11/http/server/server.cpp b/libs/asio/example/cpp11/http/server/server.cpp
new file mode 100644
index 0000000000..a643e6e65c
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/server.cpp
@@ -0,0 +1,94 @@
+//
+// server.cpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include "server.hpp"
+#include <signal.h>
+#include <utility>
+
+namespace http {
+namespace server {
+
+server::server(const std::string& address, const std::string& port,
+ const std::string& doc_root)
+ : io_service_(),
+ signals_(io_service_),
+ acceptor_(io_service_),
+ connection_manager_(),
+ socket_(io_service_),
+ request_handler_(doc_root)
+{
+ // Register to handle the signals that indicate when the server should exit.
+ // It is safe to register for the same signal multiple times in a program,
+ // provided all registration for the specified signal is made through Asio.
+ signals_.add(SIGINT);
+ signals_.add(SIGTERM);
+#if defined(SIGQUIT)
+ signals_.add(SIGQUIT);
+#endif // defined(SIGQUIT)
+
+ do_await_stop();
+
+ // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR).
+ boost::asio::ip::tcp::resolver resolver(io_service_);
+ boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve({address, port});
+ acceptor_.open(endpoint.protocol());
+ acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
+ acceptor_.bind(endpoint);
+ acceptor_.listen();
+
+ do_accept();
+}
+
+void server::run()
+{
+ // The io_service::run() call will block until all asynchronous operations
+ // have finished. While the server is running, there is always at least one
+ // asynchronous operation outstanding: the asynchronous accept call waiting
+ // for new incoming connections.
+ io_service_.run();
+}
+
+void server::do_accept()
+{
+ acceptor_.async_accept(socket_,
+ [this](boost::system::error_code ec)
+ {
+ // Check whether the server was stopped by a signal before this
+ // completion handler had a chance to run.
+ if (!acceptor_.is_open())
+ {
+ return;
+ }
+
+ if (!ec)
+ {
+ connection_manager_.start(std::make_shared<connection>(
+ std::move(socket_), connection_manager_, request_handler_));
+ }
+
+ do_accept();
+ });
+}
+
+void server::do_await_stop()
+{
+ signals_.async_wait(
+ [this](boost::system::error_code /*ec*/, int /*signo*/)
+ {
+ // The server is stopped by cancelling all outstanding asynchronous
+ // operations. Once all operations have finished the io_service::run()
+ // call will exit.
+ acceptor_.close();
+ connection_manager_.stop_all();
+ });
+}
+
+} // namespace server
+} // namespace http
diff --git a/libs/asio/example/cpp11/http/server/server.hpp b/libs/asio/example/cpp11/http/server/server.hpp
new file mode 100644
index 0000000000..b8a480d415
--- /dev/null
+++ b/libs/asio/example/cpp11/http/server/server.hpp
@@ -0,0 +1,67 @@
+//
+// server.hpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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 HTTP_SERVER_HPP
+#define HTTP_SERVER_HPP
+
+#include <boost/asio.hpp>
+#include <string>
+#include "connection.hpp"
+#include "connection_manager.hpp"
+#include "request_handler.hpp"
+
+namespace http {
+namespace server {
+
+/// The top-level class of the HTTP server.
+class server
+{
+public:
+ server(const server&) = delete;
+ server& operator=(const server&) = delete;
+
+ /// Construct the server to listen on the specified TCP address and port, and
+ /// serve up files from the given directory.
+ explicit server(const std::string& address, const std::string& port,
+ const std::string& doc_root);
+
+ /// Run the server's io_service loop.
+ void run();
+
+private:
+ /// Perform an asynchronous accept operation.
+ void do_accept();
+
+ /// Wait for a request to stop the server.
+ void do_await_stop();
+
+ /// The io_service used to perform asynchronous operations.
+ boost::asio::io_service io_service_;
+
+ /// The signal_set is used to register for process termination notifications.
+ boost::asio::signal_set signals_;
+
+ /// Acceptor used to listen for incoming connections.
+ boost::asio::ip::tcp::acceptor acceptor_;
+
+ /// The connection manager which owns all live connections.
+ connection_manager connection_manager_;
+
+ /// The next socket to be accepted.
+ boost::asio::ip::tcp::socket socket_;
+
+ /// The handler for all incoming requests.
+ request_handler request_handler_;
+};
+
+} // namespace server
+} // namespace http
+
+#endif // HTTP_SERVER_HPP
diff --git a/libs/asio/example/cpp11/spawn/Jamfile.v2 b/libs/asio/example/cpp11/spawn/Jamfile.v2
new file mode 100644
index 0000000000..d8b02ffefb
--- /dev/null
+++ b/libs/asio/example/cpp11/spawn/Jamfile.v2
@@ -0,0 +1,40 @@
+#
+# Copyright (c) 2003-2014 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)
+#
+
+import os ;
+
+if [ os.name ] = SOLARIS
+{
+ lib socket ;
+ lib nsl ;
+}
+else if [ os.name ] = NT
+{
+ lib ws2_32 ;
+ lib mswsock ;
+}
+else if [ os.name ] = HPUX
+{
+ lib ipv6 ;
+}
+
+exe server
+ : echo_server.cpp
+ /boost/context//boost_context
+ /boost/coroutine//boost_coroutine
+ /boost/system//boost_system
+ : <define>BOOST_ALL_NO_LIB=1
+ <threading>multi
+ <os>SOLARIS:<library>socket
+ <os>SOLARIS:<library>nsl
+ <os>NT:<define>_WIN32_WINNT=0x0501
+ <os>NT,<toolset>gcc:<library>ws2_32
+ <os>NT,<toolset>gcc:<library>mswsock
+ <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
+ <os>HPUX:<library>ipv6
+ ;
diff --git a/libs/asio/example/cpp11/spawn/echo_server.cpp b/libs/asio/example/cpp11/spawn/echo_server.cpp
new file mode 100644
index 0000000000..d7c30af1ea
--- /dev/null
+++ b/libs/asio/example/cpp11/spawn/echo_server.cpp
@@ -0,0 +1,108 @@
+//
+// echo_server.cpp
+// ~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+#include <boost/asio/io_service.hpp>
+#include <boost/asio/ip/tcp.hpp>
+#include <boost/asio/spawn.hpp>
+#include <boost/asio/steady_timer.hpp>
+#include <boost/asio/write.hpp>
+#include <iostream>
+#include <memory>
+
+using boost::asio::ip::tcp;
+
+class session : public std::enable_shared_from_this<session>
+{
+public:
+ explicit session(tcp::socket socket)
+ : socket_(std::move(socket)),
+ timer_(socket_.get_io_service()),
+ strand_(socket_.get_io_service())
+ {
+ }
+
+ void go()
+ {
+ auto self(shared_from_this());
+ boost::asio::spawn(strand_,
+ [this, self](boost::asio::yield_context yield)
+ {
+ try
+ {
+ char data[128];
+ for (;;)
+ {
+ timer_.expires_from_now(std::chrono::seconds(10));
+ std::size_t n = socket_.async_read_some(boost::asio::buffer(data), yield);
+ boost::asio::async_write(socket_, boost::asio::buffer(data, n), yield);
+ }
+ }
+ catch (std::exception& e)
+ {
+ socket_.close();
+ timer_.cancel();
+ }
+ });
+
+ boost::asio::spawn(strand_,
+ [this, self](boost::asio::yield_context yield)
+ {
+ while (socket_.is_open())
+ {
+ boost::system::error_code ignored_ec;
+ timer_.async_wait(yield[ignored_ec]);
+ if (timer_.expires_from_now() <= std::chrono::seconds(0))
+ socket_.close();
+ }
+ });
+ }
+
+private:
+ tcp::socket socket_;
+ boost::asio::steady_timer timer_;
+ boost::asio::io_service::strand strand_;
+};
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ if (argc != 2)
+ {
+ std::cerr << "Usage: echo_server <port>\n";
+ return 1;
+ }
+
+ boost::asio::io_service io_service;
+
+ boost::asio::spawn(io_service,
+ [&](boost::asio::yield_context yield)
+ {
+ tcp::acceptor acceptor(io_service,
+ tcp::endpoint(tcp::v4(), std::atoi(argv[1])));
+
+ for (;;)
+ {
+ boost::system::error_code ec;
+ tcp::socket socket(io_service);
+ acceptor.async_accept(socket, yield[ec]);
+ if (!ec) std::make_shared<session>(std::move(socket))->go();
+ }
+ });
+
+ io_service.run();
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "Exception: " << e.what() << "\n";
+ }
+
+ return 0;
+}
diff --git a/libs/asio/example/http/server4/coroutine.hpp b/libs/asio/example/http/server4/coroutine.hpp
deleted file mode 100644
index 777d7ca6b5..0000000000
--- a/libs/asio/example/http/server4/coroutine.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-// coroutine.hpp
-// ~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2012 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 COROUTINE_HPP
-#define COROUTINE_HPP
-
-class coroutine
-{
-public:
- coroutine() : value_(0) {}
- bool is_child() const { return value_ < 0; }
- bool is_parent() const { return !is_child(); }
- bool is_complete() const { return value_ == -1; }
-private:
- friend class coroutine_ref;
- int value_;
-};
-
-class coroutine_ref
-{
-public:
- coroutine_ref(coroutine& c) : value_(c.value_), modified_(false) {}
- coroutine_ref(coroutine* c) : value_(c->value_), modified_(false) {}
- ~coroutine_ref() { if (!modified_) value_ = -1; }
- operator int() const { return value_; }
- int& operator=(int v) { modified_ = true; return value_ = v; }
-private:
- void operator=(const coroutine_ref&);
- int& value_;
- bool modified_;
-};
-
-#define CORO_REENTER(c) \
- switch (coroutine_ref _coro_value = c) \
- case -1: if (_coro_value) \
- { \
- goto terminate_coroutine; \
- terminate_coroutine: \
- _coro_value = -1; \
- goto bail_out_of_coroutine; \
- bail_out_of_coroutine: \
- break; \
- } \
- else case 0:
-
-#define CORO_YIELD_IMPL(n) \
- for (_coro_value = (n);;) \
- if (_coro_value == 0) \
- { \
- case (n): ; \
- break; \
- } \
- else \
- switch (_coro_value ? 0 : 1) \
- for (;;) \
- case -1: if (_coro_value) \
- goto terminate_coroutine; \
- else for (;;) \
- case 1: if (_coro_value) \
- goto bail_out_of_coroutine; \
- else case 0:
-
-#define CORO_FORK_IMPL(n) \
- for (_coro_value = -(n);; _coro_value = (n)) \
- if (_coro_value == (n)) \
- { \
- case -(n): ; \
- break; \
- } \
- else
-
-#if defined(_MSC_VER)
-# define CORO_YIELD CORO_YIELD_IMPL(__COUNTER__ + 1)
-# define CORO_FORK CORO_FORK_IMPL(__COUNTER__ + 1)
-#else // defined(_MSC_VER)
-# define CORO_YIELD CORO_YIELD_IMPL(__LINE__)
-# define CORO_FORK CORO_FORK_IMPL(__LINE__)
-#endif // defined(_MSC_VER)
-
-#endif // COROUTINE_HPP
diff --git a/libs/asio/example/http/server4/unyield.hpp b/libs/asio/example/http/server4/unyield.hpp
deleted file mode 100644
index 2af26786de..0000000000
--- a/libs/asio/example/http/server4/unyield.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// unyield.hpp
-// ~~~~~~~~~~~
-//
-// Copyright (c) 2003-2012 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)
-//
-
-#ifdef reenter
-# undef reenter
-#endif
-
-#ifdef yield
-# undef yield
-#endif
-
-#ifdef fork
-# undef fork
-#endif
diff --git a/libs/asio/example/http/server4/yield.hpp b/libs/asio/example/http/server4/yield.hpp
deleted file mode 100644
index 3290efc781..0000000000
--- a/libs/asio/example/http/server4/yield.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-//
-// yield.hpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2012 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)
-//
-
-#include "coroutine.hpp"
-
-#ifndef reenter
-# define reenter(c) CORO_REENTER(c)
-#endif
-
-#ifndef yield
-# define yield CORO_YIELD
-#endif
-
-#ifndef fork
-# define fork CORO_FORK
-#endif
diff --git a/libs/asio/meta/libraries.json b/libs/asio/meta/libraries.json
new file mode 100644
index 0000000000..685753d087
--- /dev/null
+++ b/libs/asio/meta/libraries.json
@@ -0,0 +1,15 @@
+{
+ "key": "asio",
+ "name": "Asio",
+ "authors": [
+ "Chris Kohlhoff"
+ ],
+ "description": "Portable networking and other low-level I/O, including sockets, timers, hostname resolution, socket iostreams, serial ports, file descriptors and Windows HANDLEs.",
+ "category": [
+ "Concurrent",
+ "IO"
+ ],
+ "maintainers": [
+ "Chris Kohlhoff <chris -at- kohlhoff.com>"
+ ]
+}
diff --git a/libs/asio/test/Jamfile b/libs/asio/test/Jamfile
index 31cf71f0a5..a5e9ea56b9 100644
--- a/libs/asio/test/Jamfile
+++ b/libs/asio/test/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
@@ -25,8 +25,7 @@ if $(UNIX)
}
template asio_unit_test
- : <lib>@boost/libs/thread/build/boost_thread
- <lib>@boost/libs/regex/build/boost_regex
+ : <lib>@boost/libs/regex/build/boost_regex
<lib>@boost/libs/test/build/boost_test_exec_monitor
<lib>@boost_system/libs/system/build/boost_system
: <include>../../.. <include>@boost <include>@boost_system
@@ -54,10 +53,16 @@ test-suite "asio"
[ run buffers_iterator.cpp <template>asio_unit_test ]
[ run completion_condition.cpp <template>asio_unit_test ]
[ run connect.cpp <template>asio_unit_test ]
+ [ run coroutine.cpp <template>asio_unit_test ]
[ run datagram_socket_service.cpp <template>asio_unit_test ]
[ run deadline_timer_service.cpp <template>asio_unit_test ]
[ run deadline_timer.cpp <template>asio_unit_test ]
[ run error.cpp <template>asio_unit_test ]
+ [ run generic/basic_endpoint.cpp <template>asio_unit_test ]
+ [ run generic/datagram_protocol.cpp <template>asio_unit_test ]
+ [ run generic/raw_protocol.cpp <template>asio_unit_test ]
+ [ run generic/seq_packet_protocol.cpp <template>asio_unit_test ]
+ [ run generic/stream_protocol.cpp <template>asio_unit_test ]
[ run io_service.cpp <template>asio_unit_test ]
[ run ip/address.cpp <template>asio_unit_test ]
[ run ip/address_v4.cpp <template>asio_unit_test ]
@@ -68,6 +73,7 @@ test-suite "asio"
[ run ip/basic_resolver_iterator.cpp <template>asio_unit_test ]
[ run ip/basic_resolver_query.cpp <template>asio_unit_test ]
[ run ip/host_name.cpp <template>asio_unit_test ]
+ [ run ip/icmp.cpp <template>asio_unit_test ]
[ run ip/multicast.cpp <template>asio_unit_test ]
[ run ip/resolver_query_base.cpp <template>asio_unit_test ]
[ run ip/resolver_service.cpp <template>asio_unit_test ]
diff --git a/libs/asio/test/Jamfile.v2 b/libs/asio/test/Jamfile.v2
index 9f0ffe04f8..b48b528be6 100644
--- a/libs/asio/test/Jamfile.v2
+++ b/libs/asio/test/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
@@ -38,7 +38,6 @@ project
: requirements
<library>/boost/date_time//boost_date_time
<library>/boost/system//boost_system
- <library>/boost/thread//boost_thread
<library>/boost/regex//boost_regex
<library>/boost/test//boost_test_exec_monitor
<define>BOOST_ALL_NO_LIB=1
@@ -93,6 +92,8 @@ test-suite "asio" :
[ link completion_condition.cpp : $(USE_SELECT) : completion_condition_select ]
[ link connect.cpp ]
[ link connect.cpp : $(USE_SELECT) : connect_select ]
+ [ link coroutine.cpp ]
+ [ link coroutine.cpp : $(USE_SELECT) : coroutine_select ]
[ link datagram_socket_service.cpp ]
[ link datagram_socket_service.cpp : $(USE_SELECT) : datagram_socket_service_select ]
[ link deadline_timer_service.cpp ]
@@ -101,6 +102,16 @@ test-suite "asio" :
[ run deadline_timer.cpp : : : $(USE_SELECT) : deadline_timer_select ]
[ run error.cpp ]
[ run error.cpp : : : $(USE_SELECT) : error_select ]
+ [ link generic/basic_endpoint.cpp : : generic_basic_endpoint ]
+ [ link generic/basic_endpoint.cpp : $(USE_SELECT) : generic_basic_endpoint_select ]
+ [ link generic/datagram_protocol.cpp : : generic_datagram_protocol ]
+ [ link generic/datagram_protocol.cpp : $(USE_SELECT) : generic_datagram_protocol_select ]
+ [ link generic/raw_protocol.cpp : : generic_raw_protocol ]
+ [ link generic/raw_protocol.cpp : $(USE_SELECT) : generic_raw_protocol_select ]
+ [ link generic/seq_packet_protocol.cpp : : generic_seq_packet_protocol ]
+ [ link generic/seq_packet_protocol.cpp : $(USE_SELECT) : generic_seq_packet_protocol_select ]
+ [ link generic/stream_protocol.cpp : : generic_stream_protocol ]
+ [ link generic/stream_protocol.cpp : $(USE_SELECT) : generic_stream_protocol_select ]
[ link high_resolution_timer.cpp ]
[ link high_resolution_timer.cpp : $(USE_SELECT) : high_resolution_timer_select ]
[ run io_service.cpp ]
@@ -123,6 +134,8 @@ test-suite "asio" :
[ link ip/basic_resolver_query.cpp : $(USE_SELECT) : ip_basic_resolver_query_select ]
[ run ip/host_name.cpp : : : : ip_host_name ]
[ run ip/host_name.cpp : : : $(USE_SELECT) : ip_host_name_select ]
+ [ run ip/icmp.cpp : : : : ip_icmp ]
+ [ run ip/icmp.cpp : : : $(USE_SELECT) : ip_icmp_select ]
[ run ip/multicast.cpp : : : : ip_multicast ]
[ run ip/multicast.cpp : : : $(USE_SELECT) : ip_multicast_select ]
[ link ip/resolver_query_base.cpp : : ip_resolver_query_base ]
diff --git a/libs/asio/test/archetypes/async_result.hpp b/libs/asio/test/archetypes/async_result.hpp
new file mode 100644
index 0000000000..f9808836c3
--- /dev/null
+++ b/libs/asio/test/archetypes/async_result.hpp
@@ -0,0 +1,73 @@
+//
+// async_result.hpp
+// ~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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 ARCHETYPES_ASYNC_RESULT_HPP
+#define ARCHETYPES_ASYNC_RESULT_HPP
+
+#include <boost/asio/async_result.hpp>
+#include <boost/asio/handler_type.hpp>
+
+namespace archetypes {
+
+struct lazy_handler
+{
+};
+
+struct concrete_handler
+{
+ concrete_handler(lazy_handler)
+ {
+ }
+
+ template <typename Arg1>
+ void operator()(Arg1)
+ {
+ }
+
+ template <typename Arg1, typename Arg2>
+ void operator()(Arg1, Arg2)
+ {
+ }
+};
+
+} // namespace archetypes
+
+namespace boost {
+namespace asio {
+
+template <typename Signature>
+struct handler_type<archetypes::lazy_handler, Signature>
+{
+ typedef archetypes::concrete_handler type;
+};
+
+template <>
+class async_result<archetypes::concrete_handler>
+{
+public:
+ // The return type of the initiating function.
+ typedef int type;
+
+ // Construct an async_result from a given handler.
+ explicit async_result(archetypes::concrete_handler&)
+ {
+ }
+
+ // Obtain the value to be returned from the initiating function.
+ type get()
+ {
+ return 42;
+ }
+};
+
+} // namespace asio
+} // namespace boost
+
+#endif // ARCHETYPES_ASYNC_RESULT_HPP
diff --git a/libs/asio/test/archetypes/gettable_socket_option.hpp b/libs/asio/test/archetypes/gettable_socket_option.hpp
index 080fb6a422..80406af649 100644
--- a/libs/asio/test/archetypes/gettable_socket_option.hpp
+++ b/libs/asio/test/archetypes/gettable_socket_option.hpp
@@ -2,7 +2,7 @@
// gettable_socket_option.hpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/archetypes/io_control_command.hpp b/libs/asio/test/archetypes/io_control_command.hpp
index 205f4abfa0..4c24763a1e 100644
--- a/libs/asio/test/archetypes/io_control_command.hpp
+++ b/libs/asio/test/archetypes/io_control_command.hpp
@@ -2,7 +2,7 @@
// io_control_command.hpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/archetypes/settable_socket_option.hpp b/libs/asio/test/archetypes/settable_socket_option.hpp
index 7f81057861..48d04c5571 100644
--- a/libs/asio/test/archetypes/settable_socket_option.hpp
+++ b/libs/asio/test/archetypes/settable_socket_option.hpp
@@ -2,7 +2,7 @@
// settable_socket_option.hpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/basic_datagram_socket.cpp b/libs/asio/test/basic_datagram_socket.cpp
index 1a0ced8e3d..39bbad8948 100644
--- a/libs/asio/test/basic_datagram_socket.cpp
+++ b/libs/asio/test/basic_datagram_socket.cpp
@@ -2,7 +2,7 @@
// basic_datagram_socket.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("basic_datagram_socket");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "basic_datagram_socket",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/basic_deadline_timer.cpp b/libs/asio/test/basic_deadline_timer.cpp
index 01e27a4600..b56508e5ab 100644
--- a/libs/asio/test/basic_deadline_timer.cpp
+++ b/libs/asio/test/basic_deadline_timer.cpp
@@ -2,7 +2,7 @@
// basic_deadline_timer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("basic_deadline_timer");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "basic_deadline_timer",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/basic_raw_socket.cpp b/libs/asio/test/basic_raw_socket.cpp
index d8a9be10bc..7aa3630b91 100644
--- a/libs/asio/test/basic_raw_socket.cpp
+++ b/libs/asio/test/basic_raw_socket.cpp
@@ -2,7 +2,7 @@
// basic_raw_socket.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("basic_raw_socket");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "basic_raw_socket",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/basic_seq_packet_socket.cpp b/libs/asio/test/basic_seq_packet_socket.cpp
index 3fd0dc750e..cc41cae046 100644
--- a/libs/asio/test/basic_seq_packet_socket.cpp
+++ b/libs/asio/test/basic_seq_packet_socket.cpp
@@ -2,7 +2,7 @@
// basic_seq_packet_socket.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("basic_seq_packet_socket");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "basic_seq_packet_socket",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/basic_serial_port.cpp b/libs/asio/test/basic_serial_port.cpp
index f0188f553b..47383f515a 100644
--- a/libs/asio/test/basic_serial_port.cpp
+++ b/libs/asio/test/basic_serial_port.cpp
@@ -2,7 +2,7 @@
// basic_serial_port.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -19,9 +19,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("basic_serial_port");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "basic_serial_port",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/basic_signal_set.cpp b/libs/asio/test/basic_signal_set.cpp
index 85bf79482a..1ffb46f58d 100644
--- a/libs/asio/test/basic_signal_set.cpp
+++ b/libs/asio/test/basic_signal_set.cpp
@@ -2,7 +2,7 @@
// basic_signal_set.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("basic_signal_set");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "basic_signal_set",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/basic_socket_acceptor.cpp b/libs/asio/test/basic_socket_acceptor.cpp
index bc11554b42..319a7b4794 100644
--- a/libs/asio/test/basic_socket_acceptor.cpp
+++ b/libs/asio/test/basic_socket_acceptor.cpp
@@ -2,7 +2,7 @@
// basic_socket_acceptor.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("basic_socket_acceptor");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "basic_socket_acceptor",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/basic_stream_socket.cpp b/libs/asio/test/basic_stream_socket.cpp
index 777a42dfe2..7921a30164 100644
--- a/libs/asio/test/basic_stream_socket.cpp
+++ b/libs/asio/test/basic_stream_socket.cpp
@@ -2,7 +2,7 @@
// basic_stream_socket.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("basic_stream_socket");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "basic_stream_socket",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/basic_streambuf.cpp b/libs/asio/test/basic_streambuf.cpp
index 241f4fd92f..68659fa843 100644
--- a/libs/asio/test/basic_streambuf.cpp
+++ b/libs/asio/test/basic_streambuf.cpp
@@ -2,7 +2,7 @@
// basic_streambuf.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("basic_streambuf");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "basic_streambuf",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/basic_waitable_timer.cpp b/libs/asio/test/basic_waitable_timer.cpp
index 8cc5480624..252df39460 100644
--- a/libs/asio/test/basic_waitable_timer.cpp
+++ b/libs/asio/test/basic_waitable_timer.cpp
@@ -2,7 +2,7 @@
// basic_waitable_timer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("basic_waitable_timer");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "basic_waitable_timer",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/buffer.cpp b/libs/asio/test/buffer.cpp
index f1f2504338..cf91c00b03 100644
--- a/libs/asio/test/buffer.cpp
+++ b/libs/asio/test/buffer.cpp
@@ -2,7 +2,7 @@
// buffer.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,9 +16,16 @@
// Test that header file is self-contained.
#include <boost/asio/buffer.hpp>
-#include <boost/array.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+# include <boost/array.hpp>
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+#if defined(BOOST_ASIO_HAS_STD_ARRAY)
+# include <array>
+#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
+
//------------------------------------------------------------------------------
// buffer_compile test
@@ -38,9 +45,11 @@ void test()
const char const_raw_data[1024] = "";
void* void_ptr_data = raw_data;
const void* const_void_ptr_data = const_raw_data;
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
boost::array<char, 1024> array_data;
const boost::array<char, 1024>& const_array_data_1 = array_data;
boost::array<const char, 1024> const_array_data_2 = { { 0 } };
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
#if defined(BOOST_ASIO_HAS_STD_ARRAY)
std::array<char, 1024> std_array_data;
const std::array<char, 1024>& const_std_array_data_1 = std_array_data;
@@ -133,12 +142,14 @@ void test()
mb1 = buffer(raw_data, 1024);
cb1 = buffer(const_raw_data);
cb1 = buffer(const_raw_data, 1024);
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
mb1 = buffer(array_data);
mb1 = buffer(array_data, 1024);
cb1 = buffer(const_array_data_1);
cb1 = buffer(const_array_data_1, 1024);
cb1 = buffer(const_array_data_2);
cb1 = buffer(const_array_data_2, 1024);
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
#if defined(BOOST_ASIO_HAS_STD_ARRAY)
mb1 = buffer(std_array_data);
mb1 = buffer(std_array_data, 1024);
@@ -228,9 +239,8 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("buffer");
- test->add(BOOST_TEST_CASE(&buffer_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "buffer",
+ BOOST_ASIO_COMPILE_TEST_CASE(buffer_compile::test)
+)
diff --git a/libs/asio/test/buffered_read_stream.cpp b/libs/asio/test/buffered_read_stream.cpp
index 179f216820..20daf602db 100644
--- a/libs/asio/test/buffered_read_stream.cpp
+++ b/libs/asio/test/buffered_read_stream.cpp
@@ -2,7 +2,7 @@
// buffered_read_stream.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,18 +16,130 @@
// Test that header file is self-contained.
#include <boost/asio/buffered_read_stream.hpp>
-#include <boost/bind.hpp>
#include <cstring>
+#include "archetypes/async_result.hpp"
#include <boost/asio/buffer.hpp>
#include <boost/asio/io_service.hpp>
#include <boost/asio/ip/tcp.hpp>
-#include <boost/asio/placeholders.hpp>
#include <boost/system/system_error.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+# include <boost/array.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+# include <array>
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
typedef boost::asio::buffered_read_stream<
boost::asio::ip::tcp::socket> stream_type;
+void write_some_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void fill_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void read_some_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void test_compile()
+{
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+ using boost::array;
+#else // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+ using std::array;
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+ using namespace boost::asio;
+
+ try
+ {
+ io_service ios;
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ array<boost::asio::mutable_buffer, 2> mutable_buffers = {{
+ boost::asio::buffer(mutable_char_buffer, 10),
+ boost::asio::buffer(mutable_char_buffer + 10, 10) }};
+ array<boost::asio::const_buffer, 2> const_buffers = {{
+ boost::asio::buffer(const_char_buffer, 10),
+ boost::asio::buffer(const_char_buffer + 10, 10) }};
+ archetypes::lazy_handler lazy;
+ boost::system::error_code ec;
+
+ stream_type stream1(ios);
+ stream_type stream2(ios, 1024);
+
+ io_service& ios_ref = stream1.get_io_service();
+ (void)ios_ref;
+
+ stream_type::lowest_layer_type& lowest_layer = stream1.lowest_layer();
+ (void)lowest_layer;
+
+ stream1.write_some(buffer(mutable_char_buffer));
+ stream1.write_some(buffer(const_char_buffer));
+ stream1.write_some(mutable_buffers);
+ stream1.write_some(const_buffers);
+ stream1.write_some(null_buffers());
+ stream1.write_some(buffer(mutable_char_buffer), ec);
+ stream1.write_some(buffer(const_char_buffer), ec);
+ stream1.write_some(mutable_buffers, ec);
+ stream1.write_some(const_buffers, ec);
+ stream1.write_some(null_buffers(), ec);
+
+ stream1.async_write_some(buffer(mutable_char_buffer), &write_some_handler);
+ stream1.async_write_some(buffer(const_char_buffer), &write_some_handler);
+ stream1.async_write_some(mutable_buffers, &write_some_handler);
+ stream1.async_write_some(const_buffers, &write_some_handler);
+ stream1.async_write_some(null_buffers(), &write_some_handler);
+ int i1 = stream1.async_write_some(buffer(mutable_char_buffer), lazy);
+ (void)i1;
+ int i2 = stream1.async_write_some(buffer(const_char_buffer), lazy);
+ (void)i2;
+ int i3 = stream1.async_write_some(mutable_buffers, lazy);
+ (void)i3;
+ int i4 = stream1.async_write_some(const_buffers, lazy);
+ (void)i4;
+ int i5 = stream1.async_write_some(null_buffers(), lazy);
+ (void)i5;
+
+ stream1.fill();
+ stream1.fill(ec);
+
+ stream1.async_fill(&fill_handler);
+ int i6 = stream1.async_fill(lazy);
+ (void)i6;
+
+ stream1.read_some(buffer(mutable_char_buffer));
+ stream1.read_some(mutable_buffers);
+ stream1.read_some(null_buffers());
+ stream1.read_some(buffer(mutable_char_buffer), ec);
+ stream1.read_some(mutable_buffers, ec);
+ stream1.read_some(null_buffers(), ec);
+
+ stream1.async_read_some(buffer(mutable_char_buffer), &read_some_handler);
+ stream1.async_read_some(mutable_buffers, &read_some_handler);
+ stream1.async_read_some(null_buffers(), &read_some_handler);
+ int i7 = stream1.async_read_some(buffer(mutable_char_buffer), lazy);
+ (void)i7;
+ int i8 = stream1.async_read_some(mutable_buffers, lazy);
+ (void)i8;
+ int i9 = stream1.async_read_some(null_buffers(), lazy);
+ (void)i9;
+ }
+ catch (std::exception&)
+ {
+ }
+}
+
void test_sync_operations()
{
using namespace std; // For memcmp.
@@ -66,9 +178,9 @@ void test_sync_operations()
boost::asio::buffer(read_buf + bytes_read));
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
bytes_written = 0;
while (bytes_written < sizeof(write_data))
@@ -84,31 +196,31 @@ void test_sync_operations()
boost::asio::buffer(read_buf + bytes_read));
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
server_socket.close();
boost::system::error_code error;
bytes_read = client_socket.read_some(
boost::asio::buffer(read_buf), error);
- BOOST_CHECK(bytes_read == 0);
- BOOST_CHECK(error == boost::asio::error::eof);
+ BOOST_ASIO_CHECK(bytes_read == 0);
+ BOOST_ASIO_CHECK(error == boost::asio::error::eof);
client_socket.close(error);
}
void handle_accept(const boost::system::error_code& e)
{
- BOOST_CHECK(!e);
+ BOOST_ASIO_CHECK(!e);
}
void handle_write(const boost::system::error_code& e,
std::size_t bytes_transferred,
std::size_t* total_bytes_written)
{
- BOOST_CHECK(!e);
+ BOOST_ASIO_CHECK(!e);
if (e)
throw boost::system::system_error(e); // Terminate test.
*total_bytes_written += bytes_transferred;
@@ -118,7 +230,7 @@ void handle_read(const boost::system::error_code& e,
std::size_t bytes_transferred,
std::size_t* total_bytes_read)
{
- BOOST_CHECK(!e);
+ BOOST_ASIO_CHECK(!e);
if (e)
throw boost::system::system_error(e); // Terminate test.
*total_bytes_read += bytes_transferred;
@@ -127,14 +239,22 @@ void handle_read(const boost::system::error_code& e,
void handle_read_eof(const boost::system::error_code& e,
std::size_t bytes_transferred)
{
- BOOST_CHECK(e == boost::asio::error::eof);
- BOOST_CHECK(bytes_transferred == 0);
+ BOOST_ASIO_CHECK(e == boost::asio::error::eof);
+ BOOST_ASIO_CHECK(bytes_transferred == 0);
}
void test_async_operations()
{
using namespace std; // For memcmp.
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service io_service;
boost::asio::ip::tcp::acceptor acceptor(io_service,
@@ -159,8 +279,7 @@ void test_async_operations()
{
client_socket.async_write_some(
boost::asio::buffer(write_buf + bytes_written),
- boost::bind(handle_write, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_written));
+ bindns::bind(handle_write, _1, _2, &bytes_written));
io_service.run();
io_service.reset();
}
@@ -173,23 +292,21 @@ void test_async_operations()
{
server_socket.async_read_some(
boost::asio::buffer(read_buf + bytes_read),
- boost::bind(handle_read, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_read));
+ bindns::bind(handle_read, _1, _2, &bytes_read));
io_service.run();
io_service.reset();
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
bytes_written = 0;
while (bytes_written < sizeof(write_data))
{
server_socket.async_write_some(
boost::asio::buffer(write_buf + bytes_written),
- boost::bind(handle_write, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_written));
+ bindns::bind(handle_write, _1, _2, &bytes_written));
io_service.run();
io_service.reset();
}
@@ -199,24 +316,23 @@ void test_async_operations()
{
client_socket.async_read_some(
boost::asio::buffer(read_buf + bytes_read),
- boost::bind(handle_read, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_read));
+ bindns::bind(handle_read, _1, _2, &bytes_read));
io_service.run();
io_service.reset();
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
server_socket.close();
client_socket.async_read_some(boost::asio::buffer(read_buf), handle_read_eof);
}
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("buffered_read_stream");
- test->add(BOOST_TEST_CASE(&test_sync_operations));
- test->add(BOOST_TEST_CASE(&test_async_operations));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "buffered_read_stream",
+ BOOST_ASIO_TEST_CASE(test_compile)
+ BOOST_ASIO_TEST_CASE(test_sync_operations)
+ BOOST_ASIO_TEST_CASE(test_async_operations)
+)
diff --git a/libs/asio/test/buffered_stream.cpp b/libs/asio/test/buffered_stream.cpp
index 77e0835261..de41104c57 100644
--- a/libs/asio/test/buffered_stream.cpp
+++ b/libs/asio/test/buffered_stream.cpp
@@ -2,7 +2,7 @@
// buffered_stream.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,18 +16,141 @@
// Test that header file is self-contained.
#include <boost/asio/buffered_stream.hpp>
-#include <boost/bind.hpp>
#include <cstring>
+#include "archetypes/async_result.hpp"
#include <boost/asio/buffer.hpp>
#include <boost/asio/io_service.hpp>
#include <boost/asio/ip/tcp.hpp>
-#include <boost/asio/placeholders.hpp>
#include <boost/system/system_error.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+# include <boost/array.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+# include <array>
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
typedef boost::asio::buffered_stream<
boost::asio::ip::tcp::socket> stream_type;
+void write_some_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void flush_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void fill_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void read_some_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void test_compile()
+{
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+ using boost::array;
+#else // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+ using std::array;
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+ using namespace boost::asio;
+
+ try
+ {
+ io_service ios;
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ array<boost::asio::mutable_buffer, 2> mutable_buffers = {{
+ boost::asio::buffer(mutable_char_buffer, 10),
+ boost::asio::buffer(mutable_char_buffer + 10, 10) }};
+ array<boost::asio::const_buffer, 2> const_buffers = {{
+ boost::asio::buffer(const_char_buffer, 10),
+ boost::asio::buffer(const_char_buffer + 10, 10) }};
+ archetypes::lazy_handler lazy;
+ boost::system::error_code ec;
+
+ stream_type stream1(ios);
+ stream_type stream2(ios, 1024, 1024);
+
+ io_service& ios_ref = stream1.get_io_service();
+ (void)ios_ref;
+
+ stream_type::lowest_layer_type& lowest_layer = stream1.lowest_layer();
+ (void)lowest_layer;
+
+ stream1.write_some(buffer(mutable_char_buffer));
+ stream1.write_some(buffer(const_char_buffer));
+ stream1.write_some(mutable_buffers);
+ stream1.write_some(const_buffers);
+ stream1.write_some(null_buffers());
+ stream1.write_some(buffer(mutable_char_buffer), ec);
+ stream1.write_some(buffer(const_char_buffer), ec);
+ stream1.write_some(mutable_buffers, ec);
+ stream1.write_some(const_buffers, ec);
+ stream1.write_some(null_buffers(), ec);
+
+ stream1.async_write_some(buffer(mutable_char_buffer), &write_some_handler);
+ stream1.async_write_some(buffer(const_char_buffer), &write_some_handler);
+ stream1.async_write_some(mutable_buffers, &write_some_handler);
+ stream1.async_write_some(const_buffers, &write_some_handler);
+ stream1.async_write_some(null_buffers(), &write_some_handler);
+ int i1 = stream1.async_write_some(buffer(mutable_char_buffer), lazy);
+ (void)i1;
+ int i2 = stream1.async_write_some(buffer(const_char_buffer), lazy);
+ (void)i2;
+ int i3 = stream1.async_write_some(mutable_buffers, lazy);
+ (void)i3;
+ int i4 = stream1.async_write_some(const_buffers, lazy);
+ (void)i4;
+ int i5 = stream1.async_write_some(null_buffers(), lazy);
+ (void)i5;
+
+ stream1.flush();
+ stream1.flush(ec);
+
+ stream1.async_flush(&flush_handler);
+ int i6 = stream1.async_flush(lazy);
+ (void)i6;
+
+ stream1.fill();
+ stream1.fill(ec);
+
+ stream1.async_fill(&fill_handler);
+ int i7 = stream1.async_fill(lazy);
+ (void)i7;
+
+ stream1.read_some(buffer(mutable_char_buffer));
+ stream1.read_some(mutable_buffers);
+ stream1.read_some(null_buffers());
+ stream1.read_some(buffer(mutable_char_buffer), ec);
+ stream1.read_some(mutable_buffers, ec);
+ stream1.read_some(null_buffers(), ec);
+
+ stream1.async_read_some(buffer(mutable_char_buffer), &read_some_handler);
+ stream1.async_read_some(mutable_buffers, &read_some_handler);
+ stream1.async_read_some(null_buffers(), &read_some_handler);
+ int i8 = stream1.async_read_some(buffer(mutable_char_buffer), lazy);
+ (void)i8;
+ int i9 = stream1.async_read_some(mutable_buffers, lazy);
+ (void)i9;
+ int i10 = stream1.async_read_some(null_buffers(), lazy);
+ (void)i10;
+ }
+ catch (std::exception&)
+ {
+ }
+}
+
void test_sync_operations()
{
using namespace std; // For memcmp.
@@ -67,9 +190,9 @@ void test_sync_operations()
boost::asio::buffer(read_buf + bytes_read));
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
bytes_written = 0;
while (bytes_written < sizeof(write_data))
@@ -86,31 +209,31 @@ void test_sync_operations()
boost::asio::buffer(read_buf + bytes_read));
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
server_socket.close();
boost::system::error_code error;
bytes_read = client_socket.read_some(
boost::asio::buffer(read_buf), error);
- BOOST_CHECK(bytes_read == 0);
- BOOST_CHECK(error == boost::asio::error::eof);
+ BOOST_ASIO_CHECK(bytes_read == 0);
+ BOOST_ASIO_CHECK(error == boost::asio::error::eof);
client_socket.close(error);
}
void handle_accept(const boost::system::error_code& e)
{
- BOOST_CHECK(!e);
+ BOOST_ASIO_CHECK(!e);
}
void handle_write(const boost::system::error_code& e,
std::size_t bytes_transferred,
std::size_t* total_bytes_written)
{
- BOOST_CHECK(!e);
+ BOOST_ASIO_CHECK(!e);
if (e)
throw boost::system::system_error(e); // Terminate test.
*total_bytes_written += bytes_transferred;
@@ -118,14 +241,14 @@ void handle_write(const boost::system::error_code& e,
void handle_flush(const boost::system::error_code& e)
{
- BOOST_CHECK(!e);
+ BOOST_ASIO_CHECK(!e);
}
void handle_read(const boost::system::error_code& e,
std::size_t bytes_transferred,
std::size_t* total_bytes_read)
{
- BOOST_CHECK(!e);
+ BOOST_ASIO_CHECK(!e);
if (e)
throw boost::system::system_error(e); // Terminate test.
*total_bytes_read += bytes_transferred;
@@ -134,14 +257,22 @@ void handle_read(const boost::system::error_code& e,
void handle_read_eof(const boost::system::error_code& e,
std::size_t bytes_transferred)
{
- BOOST_CHECK(e == boost::asio::error::eof);
- BOOST_CHECK(bytes_transferred == 0);
+ BOOST_ASIO_CHECK(e == boost::asio::error::eof);
+ BOOST_ASIO_CHECK(bytes_transferred == 0);
}
void test_async_operations()
{
using namespace std; // For memcmp.
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service io_service;
boost::asio::ip::tcp::acceptor acceptor(io_service,
@@ -166,12 +297,11 @@ void test_async_operations()
{
client_socket.async_write_some(
boost::asio::buffer(write_buf + bytes_written),
- boost::bind(handle_write, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_written));
+ bindns::bind(handle_write, _1, _2, &bytes_written));
io_service.run();
io_service.reset();
client_socket.async_flush(
- boost::bind(handle_flush, boost::asio::placeholders::error));
+ bindns::bind(handle_flush, _1));
io_service.run();
io_service.reset();
}
@@ -184,27 +314,25 @@ void test_async_operations()
{
server_socket.async_read_some(
boost::asio::buffer(read_buf + bytes_read),
- boost::bind(handle_read, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_read));
+ bindns::bind(handle_read, _1, _2, &bytes_read));
io_service.run();
io_service.reset();
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
bytes_written = 0;
while (bytes_written < sizeof(write_data))
{
server_socket.async_write_some(
boost::asio::buffer(write_buf + bytes_written),
- boost::bind(handle_write, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_written));
+ bindns::bind(handle_write, _1, _2, &bytes_written));
io_service.run();
io_service.reset();
server_socket.async_flush(
- boost::bind(handle_flush, boost::asio::placeholders::error));
+ bindns::bind(handle_flush, _1));
io_service.run();
io_service.reset();
}
@@ -214,24 +342,23 @@ void test_async_operations()
{
client_socket.async_read_some(
boost::asio::buffer(read_buf + bytes_read),
- boost::bind(handle_read, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_read));
+ bindns::bind(handle_read, _1, _2, &bytes_read));
io_service.run();
io_service.reset();
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
server_socket.close();
client_socket.async_read_some(boost::asio::buffer(read_buf), handle_read_eof);
}
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("buffered_stream");
- test->add(BOOST_TEST_CASE(&test_sync_operations));
- test->add(BOOST_TEST_CASE(&test_async_operations));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "buffered_stream",
+ BOOST_ASIO_TEST_CASE(test_compile)
+ BOOST_ASIO_TEST_CASE(test_sync_operations)
+ BOOST_ASIO_TEST_CASE(test_async_operations)
+)
diff --git a/libs/asio/test/buffered_write_stream.cpp b/libs/asio/test/buffered_write_stream.cpp
index caf10a1184..ed210ac15b 100644
--- a/libs/asio/test/buffered_write_stream.cpp
+++ b/libs/asio/test/buffered_write_stream.cpp
@@ -2,7 +2,7 @@
// buffered_write_stream.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,18 +16,130 @@
// Test that header file is self-contained.
#include <boost/asio/buffered_write_stream.hpp>
-#include <boost/bind.hpp>
#include <cstring>
+#include "archetypes/async_result.hpp"
#include <boost/asio/buffer.hpp>
#include <boost/asio/io_service.hpp>
#include <boost/asio/ip/tcp.hpp>
-#include <boost/asio/placeholders.hpp>
#include <boost/system/system_error.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+# include <boost/array.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+# include <array>
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
typedef boost::asio::buffered_write_stream<
boost::asio::ip::tcp::socket> stream_type;
+void write_some_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void flush_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void read_some_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void test_compile()
+{
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+ using boost::array;
+#else // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+ using std::array;
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+ using namespace boost::asio;
+
+ try
+ {
+ io_service ios;
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ array<boost::asio::mutable_buffer, 2> mutable_buffers = {{
+ boost::asio::buffer(mutable_char_buffer, 10),
+ boost::asio::buffer(mutable_char_buffer + 10, 10) }};
+ array<boost::asio::const_buffer, 2> const_buffers = {{
+ boost::asio::buffer(const_char_buffer, 10),
+ boost::asio::buffer(const_char_buffer + 10, 10) }};
+ archetypes::lazy_handler lazy;
+ boost::system::error_code ec;
+
+ stream_type stream1(ios);
+ stream_type stream2(ios, 1024);
+
+ io_service& ios_ref = stream1.get_io_service();
+ (void)ios_ref;
+
+ stream_type::lowest_layer_type& lowest_layer = stream1.lowest_layer();
+ (void)lowest_layer;
+
+ stream1.write_some(buffer(mutable_char_buffer));
+ stream1.write_some(buffer(const_char_buffer));
+ stream1.write_some(mutable_buffers);
+ stream1.write_some(const_buffers);
+ stream1.write_some(null_buffers());
+ stream1.write_some(buffer(mutable_char_buffer), ec);
+ stream1.write_some(buffer(const_char_buffer), ec);
+ stream1.write_some(mutable_buffers, ec);
+ stream1.write_some(const_buffers, ec);
+ stream1.write_some(null_buffers(), ec);
+
+ stream1.async_write_some(buffer(mutable_char_buffer), &write_some_handler);
+ stream1.async_write_some(buffer(const_char_buffer), &write_some_handler);
+ stream1.async_write_some(mutable_buffers, &write_some_handler);
+ stream1.async_write_some(const_buffers, &write_some_handler);
+ stream1.async_write_some(null_buffers(), &write_some_handler);
+ int i1 = stream1.async_write_some(buffer(mutable_char_buffer), lazy);
+ (void)i1;
+ int i2 = stream1.async_write_some(buffer(const_char_buffer), lazy);
+ (void)i2;
+ int i3 = stream1.async_write_some(mutable_buffers, lazy);
+ (void)i3;
+ int i4 = stream1.async_write_some(const_buffers, lazy);
+ (void)i4;
+ int i5 = stream1.async_write_some(null_buffers(), lazy);
+ (void)i5;
+
+ stream1.flush();
+ stream1.flush(ec);
+
+ stream1.async_flush(&flush_handler);
+ int i6 = stream1.async_flush(lazy);
+ (void)i6;
+
+ stream1.read_some(buffer(mutable_char_buffer));
+ stream1.read_some(mutable_buffers);
+ stream1.read_some(null_buffers());
+ stream1.read_some(buffer(mutable_char_buffer), ec);
+ stream1.read_some(mutable_buffers, ec);
+ stream1.read_some(null_buffers(), ec);
+
+ stream1.async_read_some(buffer(mutable_char_buffer), &read_some_handler);
+ stream1.async_read_some(mutable_buffers, &read_some_handler);
+ stream1.async_read_some(null_buffers(), &read_some_handler);
+ int i7 = stream1.async_read_some(buffer(mutable_char_buffer), lazy);
+ (void)i7;
+ int i8 = stream1.async_read_some(mutable_buffers, lazy);
+ (void)i8;
+ int i9 = stream1.async_read_some(null_buffers(), lazy);
+ (void)i9;
+ }
+ catch (std::exception&)
+ {
+ }
+}
+
void test_sync_operations()
{
using namespace std; // For memcmp.
@@ -67,9 +179,9 @@ void test_sync_operations()
boost::asio::buffer(read_buf + bytes_read));
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
bytes_written = 0;
while (bytes_written < sizeof(write_data))
@@ -86,31 +198,31 @@ void test_sync_operations()
boost::asio::buffer(read_buf + bytes_read));
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
server_socket.close();
boost::system::error_code error;
bytes_read = client_socket.read_some(
boost::asio::buffer(read_buf), error);
- BOOST_CHECK(bytes_read == 0);
- BOOST_CHECK(error == boost::asio::error::eof);
+ BOOST_ASIO_CHECK(bytes_read == 0);
+ BOOST_ASIO_CHECK(error == boost::asio::error::eof);
client_socket.close(error);
}
void handle_accept(const boost::system::error_code& e)
{
- BOOST_CHECK(!e);
+ BOOST_ASIO_CHECK(!e);
}
void handle_write(const boost::system::error_code& e,
std::size_t bytes_transferred,
std::size_t* total_bytes_written)
{
- BOOST_CHECK(!e);
+ BOOST_ASIO_CHECK(!e);
if (e)
throw boost::system::system_error(e); // Terminate test.
*total_bytes_written += bytes_transferred;
@@ -118,14 +230,14 @@ void handle_write(const boost::system::error_code& e,
void handle_flush(const boost::system::error_code& e)
{
- BOOST_CHECK(!e);
+ BOOST_ASIO_CHECK(!e);
}
void handle_read(const boost::system::error_code& e,
std::size_t bytes_transferred,
std::size_t* total_bytes_read)
{
- BOOST_CHECK(!e);
+ BOOST_ASIO_CHECK(!e);
if (e)
throw boost::system::system_error(e); // Terminate test.
*total_bytes_read += bytes_transferred;
@@ -134,14 +246,22 @@ void handle_read(const boost::system::error_code& e,
void handle_read_eof(const boost::system::error_code& e,
std::size_t bytes_transferred)
{
- BOOST_CHECK(e == boost::asio::error::eof);
- BOOST_CHECK(bytes_transferred == 0);
+ BOOST_ASIO_CHECK(e == boost::asio::error::eof);
+ BOOST_ASIO_CHECK(bytes_transferred == 0);
}
void test_async_operations()
{
using namespace std; // For memcmp.
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service io_service;
boost::asio::ip::tcp::acceptor acceptor(io_service,
@@ -166,12 +286,11 @@ void test_async_operations()
{
client_socket.async_write_some(
boost::asio::buffer(write_buf + bytes_written),
- boost::bind(handle_write, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_written));
+ bindns::bind(handle_write, _1, _2, &bytes_written));
io_service.run();
io_service.reset();
client_socket.async_flush(
- boost::bind(handle_flush, boost::asio::placeholders::error));
+ bindns::bind(handle_flush, _1));
io_service.run();
io_service.reset();
}
@@ -184,27 +303,25 @@ void test_async_operations()
{
server_socket.async_read_some(
boost::asio::buffer(read_buf + bytes_read),
- boost::bind(handle_read, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_read));
+ bindns::bind(handle_read, _1, _2, &bytes_read));
io_service.run();
io_service.reset();
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
bytes_written = 0;
while (bytes_written < sizeof(write_data))
{
server_socket.async_write_some(
boost::asio::buffer(write_buf + bytes_written),
- boost::bind(handle_write, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_written));
+ bindns::bind(handle_write, _1, _2, &bytes_written));
io_service.run();
io_service.reset();
server_socket.async_flush(
- boost::bind(handle_flush, boost::asio::placeholders::error));
+ bindns::bind(handle_flush, _1));
io_service.run();
io_service.reset();
}
@@ -214,24 +331,23 @@ void test_async_operations()
{
client_socket.async_read_some(
boost::asio::buffer(read_buf + bytes_read),
- boost::bind(handle_read, boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred, &bytes_read));
+ bindns::bind(handle_read, _1, _2, &bytes_read));
io_service.run();
io_service.reset();
}
- BOOST_CHECK(bytes_written == sizeof(write_data));
- BOOST_CHECK(bytes_read == sizeof(read_data));
- BOOST_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(bytes_written == sizeof(write_data));
+ BOOST_ASIO_CHECK(bytes_read == sizeof(read_data));
+ BOOST_ASIO_CHECK(memcmp(write_data, read_data, sizeof(write_data)) == 0);
server_socket.close();
client_socket.async_read_some(boost::asio::buffer(read_buf), handle_read_eof);
}
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("buffered_write_stream");
- test->add(BOOST_TEST_CASE(&test_sync_operations));
- test->add(BOOST_TEST_CASE(&test_async_operations));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "buffered_write_stream",
+ BOOST_ASIO_TEST_CASE(test_compile)
+ BOOST_ASIO_TEST_CASE(test_sync_operations)
+ BOOST_ASIO_TEST_CASE(test_async_operations)
+)
diff --git a/libs/asio/test/buffers_iterator.cpp b/libs/asio/test/buffers_iterator.cpp
index 3d00598646..5b94790b44 100644
--- a/libs/asio/test/buffers_iterator.cpp
+++ b/libs/asio/test/buffers_iterator.cpp
@@ -2,7 +2,7 @@
// buffers_iterator.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,10 +16,17 @@
// Test that header file is self-contained.
#include <boost/asio/buffers_iterator.hpp>
-#include <boost/array.hpp>
#include <boost/asio/buffer.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+# include <boost/array.hpp>
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+#if defined(BOOST_ASIO_HAS_STD_ARRAY)
+# include <array>
+#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
+
//------------------------------------------------------------------------------
// buffers_iterator_compile test
@@ -29,7 +36,11 @@
namespace buffers_iterator_compile {
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
using boost::array;
+#elif defined(BOOST_ASIO_HAS_STD_ARRAY)
+using std::array;
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
using std::vector;
using namespace boost::asio;
@@ -274,9 +285,8 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("buffers_iterator");
- test->add(BOOST_TEST_CASE(&buffers_iterator_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "buffers_iterator",
+ BOOST_ASIO_TEST_CASE(buffers_iterator_compile::test)
+)
diff --git a/libs/asio/test/completion_condition.cpp b/libs/asio/test/completion_condition.cpp
index dee0a47fee..80e072e460 100644
--- a/libs/asio/test/completion_condition.cpp
+++ b/libs/asio/test/completion_condition.cpp
@@ -2,7 +2,7 @@
// completion_condition.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("completion_condition");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "completion_condition",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/connect.cpp b/libs/asio/test/connect.cpp
index f203c0bff3..2b57cc728e 100644
--- a/libs/asio/test/connect.cpp
+++ b/libs/asio/test/connect.cpp
@@ -2,7 +2,7 @@
// connect.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("connect");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "connect",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/coroutine.cpp b/libs/asio/test/coroutine.cpp
new file mode 100644
index 0000000000..f4c5c5e261
--- /dev/null
+++ b/libs/asio/test/coroutine.cpp
@@ -0,0 +1,112 @@
+//
+// coroutine.cpp
+// ~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include <boost/asio/coroutine.hpp>
+
+#include "unit_test.hpp"
+
+// Must come after all other headers.
+#include <boost/asio/yield.hpp>
+
+//------------------------------------------------------------------------------
+
+// Coroutine completes via yield break.
+
+void yield_break_coro(boost::asio::coroutine& coro)
+{
+ reenter (coro)
+ {
+ yield return;
+ yield break;
+ }
+}
+
+void yield_break_test()
+{
+ boost::asio::coroutine coro;
+ BOOST_ASIO_CHECK(!coro.is_complete());
+ yield_break_coro(coro);
+ BOOST_ASIO_CHECK(!coro.is_complete());
+ yield_break_coro(coro);
+ BOOST_ASIO_CHECK(coro.is_complete());
+}
+
+//------------------------------------------------------------------------------
+
+// Coroutine completes via return.
+
+void return_coro(boost::asio::coroutine& coro)
+{
+ reenter (coro)
+ {
+ return;
+ }
+}
+
+void return_test()
+{
+ boost::asio::coroutine coro;
+ return_coro(coro);
+ BOOST_ASIO_CHECK(coro.is_complete());
+}
+
+//------------------------------------------------------------------------------
+
+// Coroutine completes via exception.
+
+void exception_coro(boost::asio::coroutine& coro)
+{
+ reenter (coro)
+ {
+ throw 1;
+ }
+}
+
+void exception_test()
+{
+ boost::asio::coroutine coro;
+ try { exception_coro(coro); } catch (int) {}
+ BOOST_ASIO_CHECK(coro.is_complete());
+}
+
+//------------------------------------------------------------------------------
+
+// Coroutine completes by falling off the end.
+
+void fall_off_end_coro(boost::asio::coroutine& coro)
+{
+ reenter (coro)
+ {
+ }
+}
+
+void fall_off_end_test()
+{
+ boost::asio::coroutine coro;
+ fall_off_end_coro(coro);
+ BOOST_ASIO_CHECK(coro.is_complete());
+}
+
+//------------------------------------------------------------------------------
+
+BOOST_ASIO_TEST_SUITE
+(
+ "coroutine",
+ BOOST_ASIO_TEST_CASE(yield_break_test)
+ BOOST_ASIO_TEST_CASE(return_test)
+ BOOST_ASIO_TEST_CASE(exception_test)
+ BOOST_ASIO_TEST_CASE(fall_off_end_test)
+)
diff --git a/libs/asio/test/datagram_socket_service.cpp b/libs/asio/test/datagram_socket_service.cpp
index 5173e9ff0c..f3b6c3d68d 100644
--- a/libs/asio/test/datagram_socket_service.cpp
+++ b/libs/asio/test/datagram_socket_service.cpp
@@ -2,7 +2,7 @@
// datagram_socket_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("datagram_socket_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "datagram_socket_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/deadline_timer.cpp b/libs/asio/test/deadline_timer.cpp
index 868bd09424..9d03709d3d 100644
--- a/libs/asio/test/deadline_timer.cpp
+++ b/libs/asio/test/deadline_timer.cpp
@@ -2,7 +2,7 @@
// deadline_timer.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,11 +16,15 @@
// Test that header file is self-contained.
#include <boost/asio/deadline_timer.hpp>
-#include <boost/thread/thread.hpp>
+#include "unit_test.hpp"
+
+#if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
+
#include <boost/bind.hpp>
+#include "archetypes/async_result.hpp"
#include <boost/asio/io_service.hpp>
#include <boost/asio/placeholders.hpp>
-#include "unit_test.hpp"
+#include <boost/asio/detail/thread.hpp>
using namespace boost::posix_time;
@@ -41,7 +45,7 @@ void decrement_to_zero(boost::asio::deadline_timer* t, int* count)
t->async_wait(boost::bind(decrement_to_zero, t, count));
// Completion cannot nest, so count value should remain unchanged.
- BOOST_CHECK(*count == before_value);
+ BOOST_ASIO_CHECK(*count == before_value);
}
}
@@ -55,13 +59,13 @@ void increment_if_not_cancelled(int* count,
void cancel_timer(boost::asio::deadline_timer* t)
{
std::size_t num_cancelled = t->cancel();
- BOOST_CHECK(num_cancelled == 1);
+ BOOST_ASIO_CHECK(num_cancelled == 1);
}
void cancel_one_timer(boost::asio::deadline_timer* t)
{
std::size_t num_cancelled = t->cancel_one();
- BOOST_CHECK(num_cancelled == 1);
+ BOOST_ASIO_CHECK(num_cancelled == 1);
}
ptime now()
@@ -86,7 +90,7 @@ void deadline_timer_test()
// The timer must block until after its expiry time.
ptime end = now();
ptime expected_end = start + seconds(1);
- BOOST_CHECK(expected_end < end || expected_end == end);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
start = now();
@@ -96,7 +100,7 @@ void deadline_timer_test()
// The timer must block until after its expiry time.
end = now();
expected_end = start + seconds(1) + microseconds(500000);
- BOOST_CHECK(expected_end < end || expected_end == end);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
t2.expires_at(t2.expires_at() + seconds(1));
t2.wait();
@@ -104,7 +108,7 @@ void deadline_timer_test()
// The timer must block until after its expiry time.
end = now();
expected_end += seconds(1);
- BOOST_CHECK(expected_end < end || expected_end == end);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
start = now();
@@ -114,7 +118,7 @@ void deadline_timer_test()
// The timer must block until after its expiry time.
end = now();
expected_end = start + seconds(1) + microseconds(200000);
- BOOST_CHECK(expected_end < end || expected_end == end);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
start = now();
@@ -122,16 +126,16 @@ void deadline_timer_test()
t3.async_wait(boost::bind(increment, &count));
// No completions can be delivered until run() is called.
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(count == 0);
ios.run();
// The run() call will not return until all operations have finished, and
// this should not be until after the timer's expiry time.
- BOOST_CHECK(count == 1);
+ BOOST_ASIO_CHECK(count == 1);
end = now();
expected_end = start + seconds(1);
- BOOST_CHECK(expected_end < end || expected_end == end);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
count = 3;
start = now();
@@ -140,17 +144,17 @@ void deadline_timer_test()
t4.async_wait(boost::bind(decrement_to_zero, &t4, &count));
// No completions can be delivered until run() is called.
- BOOST_CHECK(count == 3);
+ BOOST_ASIO_CHECK(count == 3);
ios.reset();
ios.run();
// The run() call will not return until all operations have finished, and
// this should not be until after the timer's final expiry time.
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(count == 0);
end = now();
expected_end = start + seconds(3);
- BOOST_CHECK(expected_end < end || expected_end == end);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
count = 0;
start = now();
@@ -162,7 +166,7 @@ void deadline_timer_test()
t6.async_wait(boost::bind(cancel_timer, &t5));
// No completions can be delivered until run() is called.
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(count == 0);
ios.reset();
ios.run();
@@ -170,10 +174,10 @@ void deadline_timer_test()
// The timer should have been cancelled, so count should not have changed.
// The total run time should not have been much more than 1 second (and
// certainly far less than 10 seconds).
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(count == 0);
end = now();
expected_end = start + seconds(2);
- BOOST_CHECK(end < expected_end);
+ BOOST_ASIO_CHECK(end < expected_end);
// Wait on the timer again without cancelling it. This time the asynchronous
// wait should run to completion and increment the counter.
@@ -185,10 +189,10 @@ void deadline_timer_test()
// The timer should not have been cancelled, so count should have changed.
// The total time since the timer was created should be more than 10 seconds.
- BOOST_CHECK(count == 1);
+ BOOST_ASIO_CHECK(count == 1);
end = now();
expected_end = start + seconds(10);
- BOOST_CHECK(expected_end < end || expected_end == end);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
count = 0;
start = now();
@@ -210,10 +214,10 @@ void deadline_timer_test()
// One of the waits should not have been cancelled, so count should have
// changed. The total time since the timer was created should be more than 3
// seconds.
- BOOST_CHECK(count == 1);
+ BOOST_ASIO_CHECK(count == 1);
end = now();
expected_end = start + seconds(3);
- BOOST_CHECK(expected_end < end || expected_end == end);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
}
void timer_handler(const boost::system::error_code&)
@@ -234,10 +238,10 @@ void deadline_timer_cancel_test()
for (int i = 10; i < 20; ++i)
timers[i].t.async_wait(&timer_handler);
- BOOST_CHECK(timers[2].t.cancel() == 1);
- BOOST_CHECK(timers[41].t.cancel() == 1);
+ BOOST_ASIO_CHECK(timers[2].t.cancel() == 1);
+ BOOST_ASIO_CHECK(timers[41].t.cancel() == 1);
for (int i = 10; i < 20; ++i)
- BOOST_CHECK(timers[i].t.cancel() == 1);
+ BOOST_ASIO_CHECK(timers[i].t.cancel() == 1);
}
struct custom_allocation_timer_handler
@@ -289,7 +293,7 @@ void deadline_timer_custom_allocation_test()
io_service.run();
- BOOST_CHECK(allocation_count == 0);
+ BOOST_ASIO_CHECK(allocation_count == 0);
}
void io_service_run(boost::asio::io_service* ios)
@@ -305,7 +309,7 @@ void deadline_timer_thread_test()
boost::asio::deadline_timer t2(ios);
int count = 0;
- boost::thread th(boost::bind(io_service_run, &ios));
+ boost::asio::detail::thread th(boost::bind(io_service_run, &ios));
t2.expires_from_now(boost::posix_time::seconds(2));
t2.wait();
@@ -319,15 +323,34 @@ void deadline_timer_thread_test()
ios.stop();
th.join();
- BOOST_CHECK(count == 1);
+ BOOST_ASIO_CHECK(count == 1);
}
-test_suite* init_unit_test_suite(int, char*[])
+void deadline_timer_async_result_test()
{
- test_suite* test = BOOST_TEST_SUITE("deadline_timer");
- test->add(BOOST_TEST_CASE(&deadline_timer_test));
- test->add(BOOST_TEST_CASE(&deadline_timer_cancel_test));
- test->add(BOOST_TEST_CASE(&deadline_timer_custom_allocation_test));
- test->add(BOOST_TEST_CASE(&deadline_timer_thread_test));
- return test;
+ boost::asio::io_service ios;
+ boost::asio::deadline_timer t1(ios);
+
+ t1.expires_from_now(boost::posix_time::seconds(1));
+ int i = t1.async_wait(archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+
+ ios.run();
}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "deadline_timer",
+ BOOST_ASIO_TEST_CASE(deadline_timer_test)
+ BOOST_ASIO_TEST_CASE(deadline_timer_cancel_test)
+ BOOST_ASIO_TEST_CASE(deadline_timer_custom_allocation_test)
+ BOOST_ASIO_TEST_CASE(deadline_timer_thread_test)
+ BOOST_ASIO_TEST_CASE(deadline_timer_async_result_test)
+)
+#else // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
+BOOST_ASIO_TEST_SUITE
+(
+ "deadline_timer",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
+#endif // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
diff --git a/libs/asio/test/deadline_timer_service.cpp b/libs/asio/test/deadline_timer_service.cpp
index b6803ab700..e533de6ab8 100644
--- a/libs/asio/test/deadline_timer_service.cpp
+++ b/libs/asio/test/deadline_timer_service.cpp
@@ -2,7 +2,7 @@
// deadline_timer_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("deadline_timer_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "deadline_timer_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/error.cpp b/libs/asio/test/error.cpp
index 942be67072..0f0c391a15 100644
--- a/libs/asio/test/error.cpp
+++ b/libs/asio/test/error.cpp
@@ -2,7 +2,7 @@
// error.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -22,23 +22,23 @@
void test_error_code(const boost::system::error_code& code)
{
boost::system::error_code error(code);
- BOOST_CHECK(code == error);
+ BOOST_ASIO_CHECK(code == error);
- BOOST_CHECK(!code || error);
- BOOST_CHECK(!code || !!error);
+ BOOST_ASIO_CHECK(!code || error);
+ BOOST_ASIO_CHECK(!code || !!error);
boost::system::error_code error2(error);
- BOOST_CHECK(error == error2);
- BOOST_CHECK(!(error != error2));
+ BOOST_ASIO_CHECK(error == error2);
+ BOOST_ASIO_CHECK(!(error != error2));
boost::system::error_code error3;
error3 = error;
- BOOST_CHECK(error == error3);
- BOOST_CHECK(!(error != error3));
+ BOOST_ASIO_CHECK(error == error3);
+ BOOST_ASIO_CHECK(!(error != error3));
std::ostringstream os;
os << error;
- BOOST_CHECK(!os.str().empty());
+ BOOST_ASIO_CHECK(!os.str().empty());
}
void error_test()
@@ -82,9 +82,8 @@ void error_test()
test_error_code(boost::asio::error::would_block);
}
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("error");
- test->add(BOOST_TEST_CASE(&error_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "error",
+ BOOST_ASIO_TEST_CASE(error_test)
+)
diff --git a/libs/asio/test/generic/basic_endpoint.cpp b/libs/asio/test/generic/basic_endpoint.cpp
new file mode 100644
index 0000000000..8cef40c33a
--- /dev/null
+++ b/libs/asio/test/generic/basic_endpoint.cpp
@@ -0,0 +1,25 @@
+//
+// generic/basic_endpoint.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include <boost/asio/generic/basic_endpoint.hpp>
+
+#include "../unit_test.hpp"
+
+BOOST_ASIO_TEST_SUITE
+(
+ "generic/basic_endpoint",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/generic/datagram_protocol.cpp b/libs/asio/test/generic/datagram_protocol.cpp
new file mode 100644
index 0000000000..f61736c927
--- /dev/null
+++ b/libs/asio/test/generic/datagram_protocol.cpp
@@ -0,0 +1,256 @@
+//
+// generic/datagram_protocol.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include <boost/asio/generic/datagram_protocol.hpp>
+
+#include <cstring>
+#include <boost/asio/io_service.hpp>
+#include <boost/asio/ip/udp.hpp>
+#include "../unit_test.hpp"
+
+#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
+# define generic cpp_generic
+#endif
+
+//------------------------------------------------------------------------------
+
+// generic_datagram_protocol_socket_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all public member functions on the class
+// generic::datagram_socket::socket compile and link correctly. Runtime
+// failures are ignored.
+
+namespace generic_datagram_protocol_socket_compile {
+
+void connect_handler(const boost::system::error_code&)
+{
+}
+
+void send_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void receive_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void test()
+{
+ using namespace boost::asio;
+ namespace generic = boost::asio::generic;
+ typedef generic::datagram_protocol dp;
+
+ const int af_inet = BOOST_ASIO_OS_DEF(AF_INET);
+ const int ipproto_udp = BOOST_ASIO_OS_DEF(IPPROTO_UDP);
+ const int sock_dgram = BOOST_ASIO_OS_DEF(SOCK_DGRAM);
+
+ try
+ {
+ io_service ios;
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ socket_base::message_flags in_flags = 0;
+ socket_base::send_buffer_size socket_option;
+ socket_base::bytes_readable io_control_command;
+ boost::system::error_code ec;
+
+ // basic_datagram_socket constructors.
+
+ dp::socket socket1(ios);
+ dp::socket socket2(ios, dp(af_inet, ipproto_udp));
+ dp::socket socket3(ios, dp::endpoint());
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ int native_socket1 = ::socket(af_inet, sock_dgram, 0);
+ dp::socket socket4(ios, dp(af_inet, ipproto_udp), native_socket1);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+ dp::socket socket5(std::move(socket4));
+ boost::asio::ip::udp::socket udp_socket(ios);
+ dp::socket socket6(std::move(udp_socket));
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+
+ // basic_datagram_socket operators.
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+ socket1 = dp::socket(ios);
+ socket1 = std::move(socket2);
+ socket1 = boost::asio::ip::udp::socket(ios);
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+
+ // basic_io_object functions.
+
+ io_service& ios_ref = socket1.get_io_service();
+ (void)ios_ref;
+
+ // basic_socket functions.
+
+ dp::socket::lowest_layer_type& lowest_layer = socket1.lowest_layer();
+ (void)lowest_layer;
+
+ socket1.open(dp(af_inet, ipproto_udp));
+ socket1.open(dp(af_inet, ipproto_udp), ec);
+
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ int native_socket2 = ::socket(af_inet, sock_dgram, 0);
+ socket1.assign(dp(af_inet, ipproto_udp), native_socket2);
+ int native_socket3 = ::socket(af_inet, sock_dgram, 0);
+ socket1.assign(dp(af_inet, ipproto_udp), native_socket3, ec);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+
+ bool is_open = socket1.is_open();
+ (void)is_open;
+
+ socket1.close();
+ socket1.close(ec);
+
+ dp::socket::native_type native_socket4 = socket1.native();
+ (void)native_socket4;
+
+ socket1.cancel();
+ socket1.cancel(ec);
+
+ bool at_mark1 = socket1.at_mark();
+ (void)at_mark1;
+ bool at_mark2 = socket1.at_mark(ec);
+ (void)at_mark2;
+
+ std::size_t available1 = socket1.available();
+ (void)available1;
+ std::size_t available2 = socket1.available(ec);
+ (void)available2;
+
+ socket1.bind(dp::endpoint());
+ socket1.bind(dp::endpoint(), ec);
+
+ socket1.connect(dp::endpoint());
+ socket1.connect(dp::endpoint(), ec);
+
+ socket1.async_connect(dp::endpoint(), connect_handler);
+
+ socket1.set_option(socket_option);
+ socket1.set_option(socket_option, ec);
+
+ socket1.get_option(socket_option);
+ socket1.get_option(socket_option, ec);
+
+ socket1.io_control(io_control_command);
+ socket1.io_control(io_control_command, ec);
+
+ dp::endpoint endpoint1 = socket1.local_endpoint();
+ dp::endpoint endpoint2 = socket1.local_endpoint(ec);
+
+ dp::endpoint endpoint3 = socket1.remote_endpoint();
+ dp::endpoint endpoint4 = socket1.remote_endpoint(ec);
+
+ socket1.shutdown(socket_base::shutdown_both);
+ socket1.shutdown(socket_base::shutdown_both, ec);
+
+ // basic_datagram_socket functions.
+
+ socket1.send(buffer(mutable_char_buffer));
+ socket1.send(buffer(const_char_buffer));
+ socket1.send(null_buffers());
+ socket1.send(buffer(mutable_char_buffer), in_flags);
+ socket1.send(buffer(const_char_buffer), in_flags);
+ socket1.send(null_buffers(), in_flags);
+ socket1.send(buffer(mutable_char_buffer), in_flags, ec);
+ socket1.send(buffer(const_char_buffer), in_flags, ec);
+ socket1.send(null_buffers(), in_flags, ec);
+
+ socket1.async_send(buffer(mutable_char_buffer), send_handler);
+ socket1.async_send(buffer(const_char_buffer), send_handler);
+ socket1.async_send(null_buffers(), send_handler);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
+ socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
+ socket1.async_send(null_buffers(), in_flags, send_handler);
+
+ socket1.send_to(buffer(mutable_char_buffer),
+ dp::endpoint());
+ socket1.send_to(buffer(const_char_buffer),
+ dp::endpoint());
+ socket1.send_to(null_buffers(),
+ dp::endpoint());
+ socket1.send_to(buffer(mutable_char_buffer),
+ dp::endpoint(), in_flags);
+ socket1.send_to(buffer(const_char_buffer),
+ dp::endpoint(), in_flags);
+ socket1.send_to(null_buffers(),
+ dp::endpoint(), in_flags);
+ socket1.send_to(buffer(mutable_char_buffer),
+ dp::endpoint(), in_flags, ec);
+ socket1.send_to(buffer(const_char_buffer),
+ dp::endpoint(), in_flags, ec);
+ socket1.send_to(null_buffers(),
+ dp::endpoint(), in_flags, ec);
+
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ dp::endpoint(), send_handler);
+ socket1.async_send_to(buffer(const_char_buffer),
+ dp::endpoint(), send_handler);
+ socket1.async_send_to(null_buffers(),
+ dp::endpoint(), send_handler);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ dp::endpoint(), in_flags, send_handler);
+ socket1.async_send_to(buffer(const_char_buffer),
+ dp::endpoint(), in_flags, send_handler);
+ socket1.async_send_to(null_buffers(),
+ dp::endpoint(), in_flags, send_handler);
+
+ socket1.receive(buffer(mutable_char_buffer));
+ socket1.receive(null_buffers());
+ socket1.receive(buffer(mutable_char_buffer), in_flags);
+ socket1.receive(null_buffers(), in_flags);
+ socket1.receive(buffer(mutable_char_buffer), in_flags, ec);
+ socket1.receive(null_buffers(), in_flags, ec);
+
+ socket1.async_receive(buffer(mutable_char_buffer), receive_handler);
+ socket1.async_receive(null_buffers(), receive_handler);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags,
+ receive_handler);
+ socket1.async_receive(null_buffers(), in_flags, receive_handler);
+
+ dp::endpoint endpoint;
+ socket1.receive_from(buffer(mutable_char_buffer), endpoint);
+ socket1.receive_from(null_buffers(), endpoint);
+ socket1.receive_from(buffer(mutable_char_buffer), endpoint, in_flags);
+ socket1.receive_from(null_buffers(), endpoint, in_flags);
+ socket1.receive_from(buffer(mutable_char_buffer), endpoint, in_flags, ec);
+ socket1.receive_from(null_buffers(), endpoint, in_flags, ec);
+
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, receive_handler);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, receive_handler);
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, in_flags, receive_handler);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, in_flags, receive_handler);
+ }
+ catch (std::exception&)
+ {
+ }
+}
+
+} // namespace generic_datagram_protocol_socket_compile
+
+//------------------------------------------------------------------------------
+
+BOOST_ASIO_TEST_SUITE
+(
+ "generic/datagram_protocol",
+ BOOST_ASIO_TEST_CASE(generic_datagram_protocol_socket_compile::test)
+)
diff --git a/libs/asio/test/generic/raw_protocol.cpp b/libs/asio/test/generic/raw_protocol.cpp
new file mode 100644
index 0000000000..b3afbc9d37
--- /dev/null
+++ b/libs/asio/test/generic/raw_protocol.cpp
@@ -0,0 +1,256 @@
+//
+// generic/raw_protocol.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include <boost/asio/generic/raw_protocol.hpp>
+
+#include <cstring>
+#include <boost/asio/io_service.hpp>
+#include <boost/asio/ip/icmp.hpp>
+#include "../unit_test.hpp"
+
+#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
+# define generic cpp_generic
+#endif
+
+//------------------------------------------------------------------------------
+
+// generic_raw_protocol_socket_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all public member functions on the class
+// generic::raw_socket::socket compile and link correctly. Runtime failures
+// are ignored.
+
+namespace generic_raw_protocol_socket_compile {
+
+void connect_handler(const boost::system::error_code&)
+{
+}
+
+void send_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void receive_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void test()
+{
+ using namespace boost::asio;
+ namespace generic = boost::asio::generic;
+ typedef generic::raw_protocol rp;
+
+ const int af_inet = BOOST_ASIO_OS_DEF(AF_INET);
+ const int ipproto_icmp = BOOST_ASIO_OS_DEF(IPPROTO_ICMP);
+ const int sock_raw = BOOST_ASIO_OS_DEF(SOCK_RAW);
+
+ try
+ {
+ io_service ios;
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ socket_base::message_flags in_flags = 0;
+ socket_base::send_buffer_size socket_option;
+ socket_base::bytes_readable io_control_command;
+ boost::system::error_code ec;
+
+ // basic_raw_socket constructors.
+
+ rp::socket socket1(ios);
+ rp::socket socket2(ios, rp(af_inet, ipproto_icmp));
+ rp::socket socket3(ios, rp::endpoint());
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ int native_socket1 = ::socket(af_inet, sock_raw, 0);
+ rp::socket socket4(ios, rp(af_inet, ipproto_icmp), native_socket1);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+ rp::socket socket5(std::move(socket4));
+ boost::asio::ip::icmp::socket icmp_socket(ios);
+ rp::socket socket6(std::move(icmp_socket));
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+
+ // basic_datagram_socket operators.
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+ socket1 = rp::socket(ios);
+ socket1 = std::move(socket2);
+ socket1 = boost::asio::ip::icmp::socket(ios);
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+
+ // basic_io_object functions.
+
+ io_service& ios_ref = socket1.get_io_service();
+ (void)ios_ref;
+
+ // basic_socket functions.
+
+ rp::socket::lowest_layer_type& lowest_layer = socket1.lowest_layer();
+ (void)lowest_layer;
+
+ socket1.open(rp(af_inet, ipproto_icmp));
+ socket1.open(rp(af_inet, ipproto_icmp), ec);
+
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ int native_socket2 = ::socket(af_inet, sock_raw, 0);
+ socket1.assign(rp(af_inet, ipproto_icmp), native_socket2);
+ int native_socket3 = ::socket(af_inet, sock_raw, 0);
+ socket1.assign(rp(af_inet, ipproto_icmp), native_socket3, ec);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+
+ bool is_open = socket1.is_open();
+ (void)is_open;
+
+ socket1.close();
+ socket1.close(ec);
+
+ rp::socket::native_type native_socket4 = socket1.native();
+ (void)native_socket4;
+
+ socket1.cancel();
+ socket1.cancel(ec);
+
+ bool at_mark1 = socket1.at_mark();
+ (void)at_mark1;
+ bool at_mark2 = socket1.at_mark(ec);
+ (void)at_mark2;
+
+ std::size_t available1 = socket1.available();
+ (void)available1;
+ std::size_t available2 = socket1.available(ec);
+ (void)available2;
+
+ socket1.bind(rp::endpoint());
+ socket1.bind(rp::endpoint(), ec);
+
+ socket1.connect(rp::endpoint());
+ socket1.connect(rp::endpoint(), ec);
+
+ socket1.async_connect(rp::endpoint(), connect_handler);
+
+ socket1.set_option(socket_option);
+ socket1.set_option(socket_option, ec);
+
+ socket1.get_option(socket_option);
+ socket1.get_option(socket_option, ec);
+
+ socket1.io_control(io_control_command);
+ socket1.io_control(io_control_command, ec);
+
+ rp::endpoint endpoint1 = socket1.local_endpoint();
+ rp::endpoint endpoint2 = socket1.local_endpoint(ec);
+
+ rp::endpoint endpoint3 = socket1.remote_endpoint();
+ rp::endpoint endpoint4 = socket1.remote_endpoint(ec);
+
+ socket1.shutdown(socket_base::shutdown_both);
+ socket1.shutdown(socket_base::shutdown_both, ec);
+
+ // basic_raw_socket functions.
+
+ socket1.send(buffer(mutable_char_buffer));
+ socket1.send(buffer(const_char_buffer));
+ socket1.send(null_buffers());
+ socket1.send(buffer(mutable_char_buffer), in_flags);
+ socket1.send(buffer(const_char_buffer), in_flags);
+ socket1.send(null_buffers(), in_flags);
+ socket1.send(buffer(mutable_char_buffer), in_flags, ec);
+ socket1.send(buffer(const_char_buffer), in_flags, ec);
+ socket1.send(null_buffers(), in_flags, ec);
+
+ socket1.async_send(buffer(mutable_char_buffer), send_handler);
+ socket1.async_send(buffer(const_char_buffer), send_handler);
+ socket1.async_send(null_buffers(), send_handler);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
+ socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
+ socket1.async_send(null_buffers(), in_flags, send_handler);
+
+ socket1.send_to(buffer(mutable_char_buffer),
+ rp::endpoint());
+ socket1.send_to(buffer(const_char_buffer),
+ rp::endpoint());
+ socket1.send_to(null_buffers(),
+ rp::endpoint());
+ socket1.send_to(buffer(mutable_char_buffer),
+ rp::endpoint(), in_flags);
+ socket1.send_to(buffer(const_char_buffer),
+ rp::endpoint(), in_flags);
+ socket1.send_to(null_buffers(),
+ rp::endpoint(), in_flags);
+ socket1.send_to(buffer(mutable_char_buffer),
+ rp::endpoint(), in_flags, ec);
+ socket1.send_to(buffer(const_char_buffer),
+ rp::endpoint(), in_flags, ec);
+ socket1.send_to(null_buffers(),
+ rp::endpoint(), in_flags, ec);
+
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ rp::endpoint(), send_handler);
+ socket1.async_send_to(buffer(const_char_buffer),
+ rp::endpoint(), send_handler);
+ socket1.async_send_to(null_buffers(),
+ rp::endpoint(), send_handler);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ rp::endpoint(), in_flags, send_handler);
+ socket1.async_send_to(buffer(const_char_buffer),
+ rp::endpoint(), in_flags, send_handler);
+ socket1.async_send_to(null_buffers(),
+ rp::endpoint(), in_flags, send_handler);
+
+ socket1.receive(buffer(mutable_char_buffer));
+ socket1.receive(null_buffers());
+ socket1.receive(buffer(mutable_char_buffer), in_flags);
+ socket1.receive(null_buffers(), in_flags);
+ socket1.receive(buffer(mutable_char_buffer), in_flags, ec);
+ socket1.receive(null_buffers(), in_flags, ec);
+
+ socket1.async_receive(buffer(mutable_char_buffer), receive_handler);
+ socket1.async_receive(null_buffers(), receive_handler);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags,
+ receive_handler);
+ socket1.async_receive(null_buffers(), in_flags, receive_handler);
+
+ rp::endpoint endpoint;
+ socket1.receive_from(buffer(mutable_char_buffer), endpoint);
+ socket1.receive_from(null_buffers(), endpoint);
+ socket1.receive_from(buffer(mutable_char_buffer), endpoint, in_flags);
+ socket1.receive_from(null_buffers(), endpoint, in_flags);
+ socket1.receive_from(buffer(mutable_char_buffer), endpoint, in_flags, ec);
+ socket1.receive_from(null_buffers(), endpoint, in_flags, ec);
+
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, receive_handler);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, receive_handler);
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, in_flags, receive_handler);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, in_flags, receive_handler);
+ }
+ catch (std::exception&)
+ {
+ }
+}
+
+} // namespace generic_raw_protocol_socket_compile
+
+//------------------------------------------------------------------------------
+
+BOOST_ASIO_TEST_SUITE
+(
+ "generic/raw_protocol",
+ BOOST_ASIO_TEST_CASE(generic_raw_protocol_socket_compile::test)
+)
diff --git a/libs/asio/test/generic/seq_packet_protocol.cpp b/libs/asio/test/generic/seq_packet_protocol.cpp
new file mode 100644
index 0000000000..c32d2b8b1b
--- /dev/null
+++ b/libs/asio/test/generic/seq_packet_protocol.cpp
@@ -0,0 +1,198 @@
+//
+// generic/seq_packet_protocol.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include <boost/asio/generic/seq_packet_protocol.hpp>
+
+#include <cstring>
+#include <boost/asio/io_service.hpp>
+#include "../unit_test.hpp"
+
+#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
+# define generic cpp_generic
+#endif
+
+//------------------------------------------------------------------------------
+
+// generic_seq_packet_protocol_socket_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all public member functions on the class
+// generic::seq_packet_socket::socket compile and link correctly. Runtime
+// failures are ignored.
+
+namespace generic_seq_packet_protocol_socket_compile {
+
+void connect_handler(const boost::system::error_code&)
+{
+}
+
+void send_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void receive_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void test()
+{
+ using namespace boost::asio;
+ namespace generic = boost::asio::generic;
+ typedef generic::seq_packet_protocol spp;
+
+ const int af_inet = BOOST_ASIO_OS_DEF(AF_INET);
+ const int sock_seqpacket = BOOST_ASIO_OS_DEF(SOCK_SEQPACKET);
+
+ try
+ {
+ io_service ios;
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ const socket_base::message_flags in_flags = 0;
+ socket_base::message_flags out_flags = 0;
+ socket_base::send_buffer_size socket_option;
+ socket_base::bytes_readable io_control_command;
+ boost::system::error_code ec;
+
+ // basic_seq_packet_socket constructors.
+
+ spp::socket socket1(ios);
+ spp::socket socket2(ios, spp(af_inet, 0));
+ spp::socket socket3(ios, spp::endpoint());
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ int native_socket1 = ::socket(af_inet, sock_seqpacket, 0);
+ spp::socket socket4(ios, spp(af_inet, 0), native_socket1);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+ spp::socket socket5(std::move(socket4));
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+
+ // basic_seq_packet_socket operators.
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+ socket1 = spp::socket(ios);
+ socket1 = std::move(socket2);
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+
+ // basic_io_object functions.
+
+ io_service& ios_ref = socket1.get_io_service();
+ (void)ios_ref;
+
+ // basic_socket functions.
+
+ spp::socket::lowest_layer_type& lowest_layer = socket1.lowest_layer();
+ (void)lowest_layer;
+
+ socket1.open(spp(af_inet, 0));
+ socket1.open(spp(af_inet, 0), ec);
+
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ int native_socket2 = ::socket(af_inet, sock_seqpacket, 0);
+ socket1.assign(spp(af_inet, 0), native_socket2);
+ int native_socket3 = ::socket(af_inet, sock_seqpacket, 0);
+ socket1.assign(spp(af_inet, 0), native_socket3, ec);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+
+ bool is_open = socket1.is_open();
+ (void)is_open;
+
+ socket1.close();
+ socket1.close(ec);
+
+ spp::socket::native_type native_socket4 = socket1.native();
+ (void)native_socket4;
+
+ socket1.cancel();
+ socket1.cancel(ec);
+
+ bool at_mark1 = socket1.at_mark();
+ (void)at_mark1;
+ bool at_mark2 = socket1.at_mark(ec);
+ (void)at_mark2;
+
+ std::size_t available1 = socket1.available();
+ (void)available1;
+ std::size_t available2 = socket1.available(ec);
+ (void)available2;
+
+ socket1.bind(spp::endpoint());
+ socket1.bind(spp::endpoint(), ec);
+
+ socket1.connect(spp::endpoint());
+ socket1.connect(spp::endpoint(), ec);
+
+ socket1.async_connect(spp::endpoint(), connect_handler);
+
+ socket1.set_option(socket_option);
+ socket1.set_option(socket_option, ec);
+
+ socket1.get_option(socket_option);
+ socket1.get_option(socket_option, ec);
+
+ socket1.io_control(io_control_command);
+ socket1.io_control(io_control_command, ec);
+
+ spp::endpoint endpoint1 = socket1.local_endpoint();
+ spp::endpoint endpoint2 = socket1.local_endpoint(ec);
+
+ spp::endpoint endpoint3 = socket1.remote_endpoint();
+ spp::endpoint endpoint4 = socket1.remote_endpoint(ec);
+
+ socket1.shutdown(socket_base::shutdown_both);
+ socket1.shutdown(socket_base::shutdown_both, ec);
+
+ // basic_seq_packet_socket functions.
+
+ socket1.send(buffer(mutable_char_buffer), in_flags);
+ socket1.send(buffer(const_char_buffer), in_flags);
+ socket1.send(null_buffers(), in_flags);
+ socket1.send(buffer(mutable_char_buffer), in_flags, ec);
+ socket1.send(buffer(const_char_buffer), in_flags, ec);
+ socket1.send(null_buffers(), in_flags, ec);
+
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
+ socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
+ socket1.async_send(null_buffers(), in_flags, send_handler);
+
+ socket1.receive(buffer(mutable_char_buffer), out_flags);
+ socket1.receive(null_buffers(), out_flags);
+ socket1.receive(buffer(mutable_char_buffer), in_flags, out_flags);
+ socket1.receive(null_buffers(), in_flags, out_flags);
+ socket1.receive(buffer(mutable_char_buffer), in_flags, out_flags, ec);
+ socket1.receive(null_buffers(), in_flags, out_flags, ec);
+
+ socket1.async_receive(buffer(mutable_char_buffer), out_flags,
+ receive_handler);
+ socket1.async_receive(null_buffers(), out_flags, receive_handler);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags,
+ out_flags, receive_handler);
+ socket1.async_receive(null_buffers(), in_flags, out_flags, receive_handler);
+ }
+ catch (std::exception&)
+ {
+ }
+}
+
+} // namespace generic_seq_packet_protocol_socket_compile
+
+//------------------------------------------------------------------------------
+
+BOOST_ASIO_TEST_SUITE
+(
+ "generic/seq_packet_protocol",
+ BOOST_ASIO_TEST_CASE(generic_seq_packet_protocol_socket_compile::test)
+)
diff --git a/libs/asio/test/generic/stream_protocol.cpp b/libs/asio/test/generic/stream_protocol.cpp
new file mode 100644
index 0000000000..ec89e95ac7
--- /dev/null
+++ b/libs/asio/test/generic/stream_protocol.cpp
@@ -0,0 +1,241 @@
+//
+// generic/stream_protocol.cpp
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include <boost/asio/generic/stream_protocol.hpp>
+
+#include <cstring>
+#include <boost/asio/io_service.hpp>
+#include <boost/asio/ip/tcp.hpp>
+#include "../unit_test.hpp"
+
+#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
+# define generic cpp_generic
+#endif
+
+//------------------------------------------------------------------------------
+
+// generic_stream_protocol_socket_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all public member functions on the class
+// generic::stream_protocol::socket compile and link correctly. Runtime
+// failures are ignored.
+
+namespace generic_stream_protocol_socket_compile {
+
+void connect_handler(const boost::system::error_code&)
+{
+}
+
+void send_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void receive_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void write_some_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void read_some_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void test()
+{
+ using namespace boost::asio;
+ namespace generic = boost::asio::generic;
+ typedef generic::stream_protocol sp;
+
+ const int af_inet = BOOST_ASIO_OS_DEF(AF_INET);
+ const int ipproto_tcp = BOOST_ASIO_OS_DEF(IPPROTO_TCP);
+ const int sock_stream = BOOST_ASIO_OS_DEF(SOCK_STREAM);
+
+ try
+ {
+ io_service ios;
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ socket_base::message_flags in_flags = 0;
+ socket_base::keep_alive socket_option;
+ socket_base::bytes_readable io_control_command;
+ boost::system::error_code ec;
+
+ // basic_stream_socket constructors.
+
+ sp::socket socket1(ios);
+ sp::socket socket2(ios, sp(af_inet, ipproto_tcp));
+ sp::socket socket3(ios, sp::endpoint());
+#if defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ Windows::Networking::Sockets::StreamSocket^ native_socket1 = nullptr;
+#else // defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ int native_socket1 = ::socket(af_inet, sock_stream, 0);
+#endif // defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ sp::socket socket4(ios, sp(af_inet, ipproto_tcp), native_socket1);
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+ sp::socket socket5(std::move(socket4));
+ boost::asio::ip::tcp::socket tcp_socket(ios);
+ sp::socket socket6(std::move(tcp_socket));
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+
+ // basic_stream_socket operators.
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+ socket1 = sp::socket(ios);
+ socket1 = std::move(socket2);
+ socket1 = boost::asio::ip::tcp::socket(ios);
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+
+ // basic_io_object functions.
+
+ io_service& ios_ref = socket1.get_io_service();
+ (void)ios_ref;
+
+ // basic_socket functions.
+
+ sp::socket::lowest_layer_type& lowest_layer = socket1.lowest_layer();
+ (void)lowest_layer;
+
+ socket1.open(sp(af_inet, ipproto_tcp));
+ socket1.open(sp(af_inet, ipproto_tcp), ec);
+
+#if defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ Windows::Networking::Sockets::StreamSocket^ native_socket2 = nullptr;
+#else // defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ int native_socket2 = ::socket(af_inet, sock_stream, 0);
+#endif // defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ socket1.assign(sp(af_inet, ipproto_tcp), native_socket2);
+#if defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ Windows::Networking::Sockets::StreamSocket^ native_socket3 = nullptr;
+#else // defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ int native_socket3 = ::socket(af_inet, sock_stream, 0);
+#endif // defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ socket1.assign(sp(af_inet, ipproto_tcp), native_socket3, ec);
+
+ bool is_open = socket1.is_open();
+ (void)is_open;
+
+ socket1.close();
+ socket1.close(ec);
+
+ sp::socket::native_type native_socket4 = socket1.native();
+ (void)native_socket4;
+
+ socket1.cancel();
+ socket1.cancel(ec);
+
+ bool at_mark1 = socket1.at_mark();
+ (void)at_mark1;
+ bool at_mark2 = socket1.at_mark(ec);
+ (void)at_mark2;
+
+ std::size_t available1 = socket1.available();
+ (void)available1;
+ std::size_t available2 = socket1.available(ec);
+ (void)available2;
+
+ socket1.bind(sp::endpoint());
+ socket1.bind(sp::endpoint(), ec);
+
+ socket1.connect(sp::endpoint());
+ socket1.connect(sp::endpoint(), ec);
+
+ socket1.async_connect(sp::endpoint(), connect_handler);
+
+ socket1.set_option(socket_option);
+ socket1.set_option(socket_option, ec);
+
+ socket1.get_option(socket_option);
+ socket1.get_option(socket_option, ec);
+
+ socket1.io_control(io_control_command);
+ socket1.io_control(io_control_command, ec);
+
+ sp::endpoint endpoint1 = socket1.local_endpoint();
+ sp::endpoint endpoint2 = socket1.local_endpoint(ec);
+
+ sp::endpoint endpoint3 = socket1.remote_endpoint();
+ sp::endpoint endpoint4 = socket1.remote_endpoint(ec);
+
+ socket1.shutdown(socket_base::shutdown_both);
+ socket1.shutdown(socket_base::shutdown_both, ec);
+
+ // basic_stream_socket functions.
+
+ socket1.send(buffer(mutable_char_buffer));
+ socket1.send(buffer(const_char_buffer));
+ socket1.send(null_buffers());
+ socket1.send(buffer(mutable_char_buffer), in_flags);
+ socket1.send(buffer(const_char_buffer), in_flags);
+ socket1.send(null_buffers(), in_flags);
+ socket1.send(buffer(mutable_char_buffer), in_flags, ec);
+ socket1.send(buffer(const_char_buffer), in_flags, ec);
+ socket1.send(null_buffers(), in_flags, ec);
+
+ socket1.async_send(buffer(mutable_char_buffer), send_handler);
+ socket1.async_send(buffer(const_char_buffer), send_handler);
+ socket1.async_send(null_buffers(), send_handler);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
+ socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
+ socket1.async_send(null_buffers(), in_flags, send_handler);
+
+ socket1.receive(buffer(mutable_char_buffer));
+ socket1.receive(null_buffers());
+ socket1.receive(buffer(mutable_char_buffer), in_flags);
+ socket1.receive(null_buffers(), in_flags);
+ socket1.receive(buffer(mutable_char_buffer), in_flags, ec);
+ socket1.receive(null_buffers(), in_flags, ec);
+
+ socket1.async_receive(buffer(mutable_char_buffer), receive_handler);
+ socket1.async_receive(null_buffers(), receive_handler);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags,
+ receive_handler);
+ socket1.async_receive(null_buffers(), in_flags, receive_handler);
+
+ socket1.write_some(buffer(mutable_char_buffer));
+ socket1.write_some(buffer(const_char_buffer));
+ socket1.write_some(null_buffers());
+ socket1.write_some(buffer(mutable_char_buffer), ec);
+ socket1.write_some(buffer(const_char_buffer), ec);
+ socket1.write_some(null_buffers(), ec);
+
+ socket1.async_write_some(buffer(mutable_char_buffer), write_some_handler);
+ socket1.async_write_some(buffer(const_char_buffer), write_some_handler);
+ socket1.async_write_some(null_buffers(), write_some_handler);
+
+ socket1.read_some(buffer(mutable_char_buffer));
+ socket1.read_some(buffer(mutable_char_buffer), ec);
+ socket1.read_some(null_buffers(), ec);
+
+ socket1.async_read_some(buffer(mutable_char_buffer), read_some_handler);
+ socket1.async_read_some(null_buffers(), read_some_handler);
+ }
+ catch (std::exception&)
+ {
+ }
+}
+
+} // namespace generic_stream_protocol_socket_compile
+
+//------------------------------------------------------------------------------
+
+BOOST_ASIO_TEST_SUITE
+(
+ "generic/stream_protocol",
+ BOOST_ASIO_TEST_CASE(generic_stream_protocol_socket_compile::test)
+)
diff --git a/libs/asio/test/high_resolution_timer.cpp b/libs/asio/test/high_resolution_timer.cpp
index 25b23d1834..75eaf313fd 100644
--- a/libs/asio/test/high_resolution_timer.cpp
+++ b/libs/asio/test/high_resolution_timer.cpp
@@ -2,7 +2,7 @@
// high_resolution_timer.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -23,9 +23,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("high_resolution_timer");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "high_resolution_timer",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/io_service.cpp b/libs/asio/test/io_service.cpp
index cb137a571e..d221b28b70 100644
--- a/libs/asio/test/io_service.cpp
+++ b/libs/asio/test/io_service.cpp
@@ -2,7 +2,7 @@
// io_service.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -17,13 +17,40 @@
#include <boost/asio/io_service.hpp>
#include <sstream>
-#include <boost/thread/thread.hpp>
-#include <boost/bind.hpp>
-#include <boost/asio/deadline_timer.hpp>
+#include <boost/asio/detail/thread.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
+# include <boost/asio/deadline_timer.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
+# include <boost/asio/steady_timer.hpp>
+#endif // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
+
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
using namespace boost::asio;
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+namespace bindns = std;
+#endif
+
+#if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
+typedef deadline_timer timer;
+namespace chronons = boost::posix_time;
+#elif defined(BOOST_ASIO_HAS_STD_CHRONO)
+typedef steady_timer timer;
+namespace chronons = std::chrono;
+#elif defined(BOOST_ASIO_HAS_BOOST_CHRONO)
+typedef steady_timer timer;
+namespace chronons = boost::chrono;
+#endif // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
+
void increment(int* count)
{
++(*count);
@@ -36,10 +63,10 @@ void decrement_to_zero(io_service* ios, int* count)
--(*count);
int before_value = *count;
- ios->post(boost::bind(decrement_to_zero, ios, count));
+ ios->post(bindns::bind(decrement_to_zero, ios, count));
// Handler execution cannot nest, so count value should remain unchanged.
- BOOST_CHECK(*count == before_value);
+ BOOST_ASIO_CHECK(*count == before_value);
}
}
@@ -49,30 +76,30 @@ void nested_decrement_to_zero(io_service* ios, int* count)
{
--(*count);
- ios->dispatch(boost::bind(nested_decrement_to_zero, ios, count));
+ ios->dispatch(bindns::bind(nested_decrement_to_zero, ios, count));
// Handler execution is nested, so count value should now be zero.
- BOOST_CHECK(*count == 0);
+ BOOST_ASIO_CHECK(*count == 0);
}
}
void sleep_increment(io_service* ios, int* count)
{
- deadline_timer t(*ios, boost::posix_time::seconds(2));
+ timer t(*ios, chronons::seconds(2));
t.wait();
if (++(*count) < 3)
- ios->post(boost::bind(sleep_increment, ios, count));
+ ios->post(bindns::bind(sleep_increment, ios, count));
}
void start_sleep_increments(io_service* ios, int* count)
{
// Give all threads a chance to start.
- deadline_timer t(*ios, boost::posix_time::seconds(2));
+ timer t(*ios, chronons::seconds(2));
t.wait();
// Start the first of three increments.
- ios->post(boost::bind(sleep_increment, ios, count));
+ ios->post(bindns::bind(sleep_increment, ios, count));
}
void throw_exception()
@@ -90,150 +117,150 @@ void io_service_test()
io_service ios;
int count = 0;
- ios.post(boost::bind(increment, &count));
+ ios.post(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
- BOOST_CHECK(!ios.stopped());
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(!ios.stopped());
+ BOOST_ASIO_CHECK(count == 0);
ios.run();
// The run() call will not return until all work has finished.
- BOOST_CHECK(ios.stopped());
- BOOST_CHECK(count == 1);
+ BOOST_ASIO_CHECK(ios.stopped());
+ BOOST_ASIO_CHECK(count == 1);
count = 0;
ios.reset();
- ios.post(boost::bind(increment, &count));
- ios.post(boost::bind(increment, &count));
- ios.post(boost::bind(increment, &count));
- ios.post(boost::bind(increment, &count));
- ios.post(boost::bind(increment, &count));
+ ios.post(bindns::bind(increment, &count));
+ ios.post(bindns::bind(increment, &count));
+ ios.post(bindns::bind(increment, &count));
+ ios.post(bindns::bind(increment, &count));
+ ios.post(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
- BOOST_CHECK(!ios.stopped());
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(!ios.stopped());
+ BOOST_ASIO_CHECK(count == 0);
ios.run();
// The run() call will not return until all work has finished.
- BOOST_CHECK(ios.stopped());
- BOOST_CHECK(count == 5);
+ BOOST_ASIO_CHECK(ios.stopped());
+ BOOST_ASIO_CHECK(count == 5);
count = 0;
ios.reset();
io_service::work* w = new io_service::work(ios);
- ios.post(boost::bind(&io_service::stop, &ios));
- BOOST_CHECK(!ios.stopped());
+ ios.post(bindns::bind(&io_service::stop, &ios));
+ BOOST_ASIO_CHECK(!ios.stopped());
ios.run();
// The only operation executed should have been to stop run().
- BOOST_CHECK(ios.stopped());
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(ios.stopped());
+ BOOST_ASIO_CHECK(count == 0);
ios.reset();
- ios.post(boost::bind(increment, &count));
+ ios.post(bindns::bind(increment, &count));
delete w;
// No handlers can be called until run() is called.
- BOOST_CHECK(!ios.stopped());
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(!ios.stopped());
+ BOOST_ASIO_CHECK(count == 0);
ios.run();
// The run() call will not return until all work has finished.
- BOOST_CHECK(ios.stopped());
- BOOST_CHECK(count == 1);
+ BOOST_ASIO_CHECK(ios.stopped());
+ BOOST_ASIO_CHECK(count == 1);
count = 10;
ios.reset();
- ios.post(boost::bind(decrement_to_zero, &ios, &count));
+ ios.post(bindns::bind(decrement_to_zero, &ios, &count));
// No handlers can be called until run() is called.
- BOOST_CHECK(!ios.stopped());
- BOOST_CHECK(count == 10);
+ BOOST_ASIO_CHECK(!ios.stopped());
+ BOOST_ASIO_CHECK(count == 10);
ios.run();
// The run() call will not return until all work has finished.
- BOOST_CHECK(ios.stopped());
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(ios.stopped());
+ BOOST_ASIO_CHECK(count == 0);
count = 10;
ios.reset();
- ios.post(boost::bind(nested_decrement_to_zero, &ios, &count));
+ ios.post(bindns::bind(nested_decrement_to_zero, &ios, &count));
// No handlers can be called until run() is called.
- BOOST_CHECK(!ios.stopped());
- BOOST_CHECK(count == 10);
+ BOOST_ASIO_CHECK(!ios.stopped());
+ BOOST_ASIO_CHECK(count == 10);
ios.run();
// The run() call will not return until all work has finished.
- BOOST_CHECK(ios.stopped());
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(ios.stopped());
+ BOOST_ASIO_CHECK(count == 0);
count = 10;
ios.reset();
- ios.dispatch(boost::bind(nested_decrement_to_zero, &ios, &count));
+ ios.dispatch(bindns::bind(nested_decrement_to_zero, &ios, &count));
// No handlers can be called until run() is called, even though nested
// delivery was specifically allowed in the previous call.
- BOOST_CHECK(!ios.stopped());
- BOOST_CHECK(count == 10);
+ BOOST_ASIO_CHECK(!ios.stopped());
+ BOOST_ASIO_CHECK(count == 10);
ios.run();
// The run() call will not return until all work has finished.
- BOOST_CHECK(ios.stopped());
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(ios.stopped());
+ BOOST_ASIO_CHECK(count == 0);
count = 0;
int count2 = 0;
ios.reset();
- BOOST_CHECK(!ios.stopped());
- ios.post(boost::bind(start_sleep_increments, &ios, &count));
- ios.post(boost::bind(start_sleep_increments, &ios, &count2));
- boost::thread thread1(boost::bind(io_service_run, &ios));
- boost::thread thread2(boost::bind(io_service_run, &ios));
+ BOOST_ASIO_CHECK(!ios.stopped());
+ ios.post(bindns::bind(start_sleep_increments, &ios, &count));
+ ios.post(bindns::bind(start_sleep_increments, &ios, &count2));
+ boost::asio::detail::thread thread1(bindns::bind(io_service_run, &ios));
+ boost::asio::detail::thread thread2(bindns::bind(io_service_run, &ios));
thread1.join();
thread2.join();
// The run() calls will not return until all work has finished.
- BOOST_CHECK(ios.stopped());
- BOOST_CHECK(count == 3);
- BOOST_CHECK(count2 == 3);
+ BOOST_ASIO_CHECK(ios.stopped());
+ BOOST_ASIO_CHECK(count == 3);
+ BOOST_ASIO_CHECK(count2 == 3);
count = 10;
io_service ios2;
- ios.dispatch(ios2.wrap(boost::bind(decrement_to_zero, &ios2, &count)));
+ ios.dispatch(ios2.wrap(bindns::bind(decrement_to_zero, &ios2, &count)));
ios.reset();
- BOOST_CHECK(!ios.stopped());
+ BOOST_ASIO_CHECK(!ios.stopped());
ios.run();
// No decrement_to_zero handlers can be called until run() is called on the
// second io_service object.
- BOOST_CHECK(ios.stopped());
- BOOST_CHECK(count == 10);
+ BOOST_ASIO_CHECK(ios.stopped());
+ BOOST_ASIO_CHECK(count == 10);
ios2.run();
// The run() call will not return until all work has finished.
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(count == 0);
count = 0;
int exception_count = 0;
ios.reset();
ios.post(&throw_exception);
- ios.post(boost::bind(increment, &count));
- ios.post(boost::bind(increment, &count));
+ ios.post(bindns::bind(increment, &count));
+ ios.post(bindns::bind(increment, &count));
ios.post(&throw_exception);
- ios.post(boost::bind(increment, &count));
+ ios.post(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
- BOOST_CHECK(!ios.stopped());
- BOOST_CHECK(count == 0);
- BOOST_CHECK(exception_count == 0);
+ BOOST_ASIO_CHECK(!ios.stopped());
+ BOOST_ASIO_CHECK(count == 0);
+ BOOST_ASIO_CHECK(exception_count == 0);
for (;;)
{
@@ -249,9 +276,9 @@ void io_service_test()
}
// The run() calls will not return until all work has finished.
- BOOST_CHECK(ios.stopped());
- BOOST_CHECK(count == 3);
- BOOST_CHECK(exception_count == 2);
+ BOOST_ASIO_CHECK(ios.stopped());
+ BOOST_ASIO_CHECK(count == 3);
+ BOOST_ASIO_CHECK(exception_count == 2);
}
class test_service : public boost::asio::io_service::service
@@ -276,13 +303,13 @@ void io_service_service_test()
boost::asio::use_service<test_service>(ios1);
- BOOST_CHECK(boost::asio::has_service<test_service>(ios1));
+ BOOST_ASIO_CHECK(boost::asio::has_service<test_service>(ios1));
test_service* svc1 = new test_service(ios1);
try
{
boost::asio::add_service(ios1, svc1);
- BOOST_ERROR("add_service did not throw");
+ BOOST_ASIO_ERROR("add_service did not throw");
}
catch (boost::asio::service_already_exists&)
{
@@ -294,14 +321,14 @@ void io_service_service_test()
test_service* svc2 = new test_service(ios2);
boost::asio::add_service(ios2, svc2);
- BOOST_CHECK(boost::asio::has_service<test_service>(ios2));
- BOOST_CHECK(&boost::asio::use_service<test_service>(ios2) == svc2);
+ BOOST_ASIO_CHECK(boost::asio::has_service<test_service>(ios2));
+ BOOST_ASIO_CHECK(&boost::asio::use_service<test_service>(ios2) == svc2);
test_service* svc3 = new test_service(ios2);
try
{
boost::asio::add_service(ios2, svc3);
- BOOST_ERROR("add_service did not throw");
+ BOOST_ASIO_ERROR("add_service did not throw");
}
catch (boost::asio::service_already_exists&)
{
@@ -314,20 +341,19 @@ void io_service_service_test()
try
{
boost::asio::add_service(ios3, svc4);
- BOOST_ERROR("add_service did not throw");
+ BOOST_ASIO_ERROR("add_service did not throw");
}
catch (boost::asio::invalid_service_owner&)
{
}
delete svc4;
- BOOST_CHECK(!boost::asio::has_service<test_service>(ios3));
+ BOOST_ASIO_CHECK(!boost::asio::has_service<test_service>(ios3));
}
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("io_service");
- test->add(BOOST_TEST_CASE(&io_service_test));
- test->add(BOOST_TEST_CASE(&io_service_service_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "io_service",
+ BOOST_ASIO_TEST_CASE(io_service_test)
+ BOOST_ASIO_TEST_CASE(io_service_service_test)
+)
diff --git a/libs/asio/test/ip/address.cpp b/libs/asio/test/ip/address.cpp
index 290301ec0a..ca183f8fdc 100644
--- a/libs/asio/test/ip/address.cpp
+++ b/libs/asio/test/ip/address.cpp
@@ -2,7 +2,7 @@
// address.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -17,6 +17,7 @@
#include <boost/asio/ip/address.hpp>
#include "../unit_test.hpp"
+#include <sstream>
//------------------------------------------------------------------------------
@@ -116,9 +117,8 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/address");
- test->add(BOOST_TEST_CASE(&ip_address_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/address",
+ BOOST_ASIO_TEST_CASE(ip_address_compile::test)
+)
diff --git a/libs/asio/test/ip/address_v4.cpp b/libs/asio/test/ip/address_v4.cpp
index 7590268c45..80ab8d8c6e 100644
--- a/libs/asio/test/ip/address_v4.cpp
+++ b/libs/asio/test/ip/address_v4.cpp
@@ -2,7 +2,7 @@
// address_v4.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -142,128 +142,127 @@ void test()
using boost::asio::ip::address_v4;
address_v4 a1;
- BOOST_CHECK(a1.to_bytes()[0] == 0);
- BOOST_CHECK(a1.to_bytes()[1] == 0);
- BOOST_CHECK(a1.to_bytes()[2] == 0);
- BOOST_CHECK(a1.to_bytes()[3] == 0);
- BOOST_CHECK(a1.to_ulong() == 0);
+ BOOST_ASIO_CHECK(a1.to_bytes()[0] == 0);
+ BOOST_ASIO_CHECK(a1.to_bytes()[1] == 0);
+ BOOST_ASIO_CHECK(a1.to_bytes()[2] == 0);
+ BOOST_ASIO_CHECK(a1.to_bytes()[3] == 0);
+ BOOST_ASIO_CHECK(a1.to_ulong() == 0);
address_v4::bytes_type b1 = {{ 1, 2, 3, 4 }};
address_v4 a2(b1);
- BOOST_CHECK(a2.to_bytes()[0] == 1);
- BOOST_CHECK(a2.to_bytes()[1] == 2);
- BOOST_CHECK(a2.to_bytes()[2] == 3);
- BOOST_CHECK(a2.to_bytes()[3] == 4);
- BOOST_CHECK(((a2.to_ulong() >> 24) & 0xFF) == b1[0]);
- BOOST_CHECK(((a2.to_ulong() >> 16) & 0xFF) == b1[1]);
- BOOST_CHECK(((a2.to_ulong() >> 8) & 0xFF) == b1[2]);
- BOOST_CHECK((a2.to_ulong() & 0xFF) == b1[3]);
+ BOOST_ASIO_CHECK(a2.to_bytes()[0] == 1);
+ BOOST_ASIO_CHECK(a2.to_bytes()[1] == 2);
+ BOOST_ASIO_CHECK(a2.to_bytes()[2] == 3);
+ BOOST_ASIO_CHECK(a2.to_bytes()[3] == 4);
+ BOOST_ASIO_CHECK(((a2.to_ulong() >> 24) & 0xFF) == b1[0]);
+ BOOST_ASIO_CHECK(((a2.to_ulong() >> 16) & 0xFF) == b1[1]);
+ BOOST_ASIO_CHECK(((a2.to_ulong() >> 8) & 0xFF) == b1[2]);
+ BOOST_ASIO_CHECK((a2.to_ulong() & 0xFF) == b1[3]);
address_v4 a3(0x01020304);
- BOOST_CHECK(a3.to_bytes()[0] == 1);
- BOOST_CHECK(a3.to_bytes()[1] == 2);
- BOOST_CHECK(a3.to_bytes()[2] == 3);
- BOOST_CHECK(a3.to_bytes()[3] == 4);
- BOOST_CHECK(a3.to_ulong() == 0x01020304);
-
- BOOST_CHECK(address_v4(0x7F000001).is_loopback());
- BOOST_CHECK(address_v4(0x7F000002).is_loopback());
- BOOST_CHECK(!address_v4(0x00000000).is_loopback());
- BOOST_CHECK(!address_v4(0x01020304).is_loopback());
-
- BOOST_CHECK(address_v4(0x00000000).is_unspecified());
- BOOST_CHECK(!address_v4(0x7F000001).is_unspecified());
- BOOST_CHECK(!address_v4(0x01020304).is_unspecified());
-
- BOOST_CHECK(address_v4(0x01000000).is_class_a());
- BOOST_CHECK(address_v4(0x7F000000).is_class_a());
- BOOST_CHECK(!address_v4(0x80000000).is_class_a());
- BOOST_CHECK(!address_v4(0xBFFF0000).is_class_a());
- BOOST_CHECK(!address_v4(0xC0000000).is_class_a());
- BOOST_CHECK(!address_v4(0xDFFFFF00).is_class_a());
- BOOST_CHECK(!address_v4(0xE0000000).is_class_a());
- BOOST_CHECK(!address_v4(0xEFFFFFFF).is_class_a());
- BOOST_CHECK(!address_v4(0xF0000000).is_class_a());
- BOOST_CHECK(!address_v4(0xFFFFFFFF).is_class_a());
-
- BOOST_CHECK(!address_v4(0x01000000).is_class_b());
- BOOST_CHECK(!address_v4(0x7F000000).is_class_b());
- BOOST_CHECK(address_v4(0x80000000).is_class_b());
- BOOST_CHECK(address_v4(0xBFFF0000).is_class_b());
- BOOST_CHECK(!address_v4(0xC0000000).is_class_b());
- BOOST_CHECK(!address_v4(0xDFFFFF00).is_class_b());
- BOOST_CHECK(!address_v4(0xE0000000).is_class_b());
- BOOST_CHECK(!address_v4(0xEFFFFFFF).is_class_b());
- BOOST_CHECK(!address_v4(0xF0000000).is_class_b());
- BOOST_CHECK(!address_v4(0xFFFFFFFF).is_class_b());
-
- BOOST_CHECK(!address_v4(0x01000000).is_class_c());
- BOOST_CHECK(!address_v4(0x7F000000).is_class_c());
- BOOST_CHECK(!address_v4(0x80000000).is_class_c());
- BOOST_CHECK(!address_v4(0xBFFF0000).is_class_c());
- BOOST_CHECK(address_v4(0xC0000000).is_class_c());
- BOOST_CHECK(address_v4(0xDFFFFF00).is_class_c());
- BOOST_CHECK(!address_v4(0xE0000000).is_class_c());
- BOOST_CHECK(!address_v4(0xEFFFFFFF).is_class_c());
- BOOST_CHECK(!address_v4(0xF0000000).is_class_c());
- BOOST_CHECK(!address_v4(0xFFFFFFFF).is_class_c());
-
- BOOST_CHECK(!address_v4(0x01000000).is_multicast());
- BOOST_CHECK(!address_v4(0x7F000000).is_multicast());
- BOOST_CHECK(!address_v4(0x80000000).is_multicast());
- BOOST_CHECK(!address_v4(0xBFFF0000).is_multicast());
- BOOST_CHECK(!address_v4(0xC0000000).is_multicast());
- BOOST_CHECK(!address_v4(0xDFFFFF00).is_multicast());
- BOOST_CHECK(address_v4(0xE0000000).is_multicast());
- BOOST_CHECK(address_v4(0xEFFFFFFF).is_multicast());
- BOOST_CHECK(!address_v4(0xF0000000).is_multicast());
- BOOST_CHECK(!address_v4(0xFFFFFFFF).is_multicast());
+ BOOST_ASIO_CHECK(a3.to_bytes()[0] == 1);
+ BOOST_ASIO_CHECK(a3.to_bytes()[1] == 2);
+ BOOST_ASIO_CHECK(a3.to_bytes()[2] == 3);
+ BOOST_ASIO_CHECK(a3.to_bytes()[3] == 4);
+ BOOST_ASIO_CHECK(a3.to_ulong() == 0x01020304);
+
+ BOOST_ASIO_CHECK(address_v4(0x7F000001).is_loopback());
+ BOOST_ASIO_CHECK(address_v4(0x7F000002).is_loopback());
+ BOOST_ASIO_CHECK(!address_v4(0x00000000).is_loopback());
+ BOOST_ASIO_CHECK(!address_v4(0x01020304).is_loopback());
+
+ BOOST_ASIO_CHECK(address_v4(0x00000000).is_unspecified());
+ BOOST_ASIO_CHECK(!address_v4(0x7F000001).is_unspecified());
+ BOOST_ASIO_CHECK(!address_v4(0x01020304).is_unspecified());
+
+ BOOST_ASIO_CHECK(address_v4(0x01000000).is_class_a());
+ BOOST_ASIO_CHECK(address_v4(0x7F000000).is_class_a());
+ BOOST_ASIO_CHECK(!address_v4(0x80000000).is_class_a());
+ BOOST_ASIO_CHECK(!address_v4(0xBFFF0000).is_class_a());
+ BOOST_ASIO_CHECK(!address_v4(0xC0000000).is_class_a());
+ BOOST_ASIO_CHECK(!address_v4(0xDFFFFF00).is_class_a());
+ BOOST_ASIO_CHECK(!address_v4(0xE0000000).is_class_a());
+ BOOST_ASIO_CHECK(!address_v4(0xEFFFFFFF).is_class_a());
+ BOOST_ASIO_CHECK(!address_v4(0xF0000000).is_class_a());
+ BOOST_ASIO_CHECK(!address_v4(0xFFFFFFFF).is_class_a());
+
+ BOOST_ASIO_CHECK(!address_v4(0x01000000).is_class_b());
+ BOOST_ASIO_CHECK(!address_v4(0x7F000000).is_class_b());
+ BOOST_ASIO_CHECK(address_v4(0x80000000).is_class_b());
+ BOOST_ASIO_CHECK(address_v4(0xBFFF0000).is_class_b());
+ BOOST_ASIO_CHECK(!address_v4(0xC0000000).is_class_b());
+ BOOST_ASIO_CHECK(!address_v4(0xDFFFFF00).is_class_b());
+ BOOST_ASIO_CHECK(!address_v4(0xE0000000).is_class_b());
+ BOOST_ASIO_CHECK(!address_v4(0xEFFFFFFF).is_class_b());
+ BOOST_ASIO_CHECK(!address_v4(0xF0000000).is_class_b());
+ BOOST_ASIO_CHECK(!address_v4(0xFFFFFFFF).is_class_b());
+
+ BOOST_ASIO_CHECK(!address_v4(0x01000000).is_class_c());
+ BOOST_ASIO_CHECK(!address_v4(0x7F000000).is_class_c());
+ BOOST_ASIO_CHECK(!address_v4(0x80000000).is_class_c());
+ BOOST_ASIO_CHECK(!address_v4(0xBFFF0000).is_class_c());
+ BOOST_ASIO_CHECK(address_v4(0xC0000000).is_class_c());
+ BOOST_ASIO_CHECK(address_v4(0xDFFFFF00).is_class_c());
+ BOOST_ASIO_CHECK(!address_v4(0xE0000000).is_class_c());
+ BOOST_ASIO_CHECK(!address_v4(0xEFFFFFFF).is_class_c());
+ BOOST_ASIO_CHECK(!address_v4(0xF0000000).is_class_c());
+ BOOST_ASIO_CHECK(!address_v4(0xFFFFFFFF).is_class_c());
+
+ BOOST_ASIO_CHECK(!address_v4(0x01000000).is_multicast());
+ BOOST_ASIO_CHECK(!address_v4(0x7F000000).is_multicast());
+ BOOST_ASIO_CHECK(!address_v4(0x80000000).is_multicast());
+ BOOST_ASIO_CHECK(!address_v4(0xBFFF0000).is_multicast());
+ BOOST_ASIO_CHECK(!address_v4(0xC0000000).is_multicast());
+ BOOST_ASIO_CHECK(!address_v4(0xDFFFFF00).is_multicast());
+ BOOST_ASIO_CHECK(address_v4(0xE0000000).is_multicast());
+ BOOST_ASIO_CHECK(address_v4(0xEFFFFFFF).is_multicast());
+ BOOST_ASIO_CHECK(!address_v4(0xF0000000).is_multicast());
+ BOOST_ASIO_CHECK(!address_v4(0xFFFFFFFF).is_multicast());
address_v4 a4 = address_v4::any();
- BOOST_CHECK(a4.to_bytes()[0] == 0);
- BOOST_CHECK(a4.to_bytes()[1] == 0);
- BOOST_CHECK(a4.to_bytes()[2] == 0);
- BOOST_CHECK(a4.to_bytes()[3] == 0);
- BOOST_CHECK(a4.to_ulong() == 0);
+ BOOST_ASIO_CHECK(a4.to_bytes()[0] == 0);
+ BOOST_ASIO_CHECK(a4.to_bytes()[1] == 0);
+ BOOST_ASIO_CHECK(a4.to_bytes()[2] == 0);
+ BOOST_ASIO_CHECK(a4.to_bytes()[3] == 0);
+ BOOST_ASIO_CHECK(a4.to_ulong() == 0);
address_v4 a5 = address_v4::loopback();
- BOOST_CHECK(a5.to_bytes()[0] == 0x7F);
- BOOST_CHECK(a5.to_bytes()[1] == 0);
- BOOST_CHECK(a5.to_bytes()[2] == 0);
- BOOST_CHECK(a5.to_bytes()[3] == 0x01);
- BOOST_CHECK(a5.to_ulong() == 0x7F000001);
+ BOOST_ASIO_CHECK(a5.to_bytes()[0] == 0x7F);
+ BOOST_ASIO_CHECK(a5.to_bytes()[1] == 0);
+ BOOST_ASIO_CHECK(a5.to_bytes()[2] == 0);
+ BOOST_ASIO_CHECK(a5.to_bytes()[3] == 0x01);
+ BOOST_ASIO_CHECK(a5.to_ulong() == 0x7F000001);
address_v4 a6 = address_v4::broadcast();
- BOOST_CHECK(a6.to_bytes()[0] == 0xFF);
- BOOST_CHECK(a6.to_bytes()[1] == 0xFF);
- BOOST_CHECK(a6.to_bytes()[2] == 0xFF);
- BOOST_CHECK(a6.to_bytes()[3] == 0xFF);
- BOOST_CHECK(a6.to_ulong() == 0xFFFFFFFF);
+ BOOST_ASIO_CHECK(a6.to_bytes()[0] == 0xFF);
+ BOOST_ASIO_CHECK(a6.to_bytes()[1] == 0xFF);
+ BOOST_ASIO_CHECK(a6.to_bytes()[2] == 0xFF);
+ BOOST_ASIO_CHECK(a6.to_bytes()[3] == 0xFF);
+ BOOST_ASIO_CHECK(a6.to_ulong() == 0xFFFFFFFF);
address_v4 class_a_net(0xFF000000);
address_v4 class_b_net(0xFFFF0000);
address_v4 class_c_net(0xFFFFFF00);
address_v4 other_net(0xFFFFFFFF);
- BOOST_CHECK(address_v4::netmask(address_v4(0x01000000)) == class_a_net);
- BOOST_CHECK(address_v4::netmask(address_v4(0x7F000000)) == class_a_net);
- BOOST_CHECK(address_v4::netmask(address_v4(0x80000000)) == class_b_net);
- BOOST_CHECK(address_v4::netmask(address_v4(0xBFFF0000)) == class_b_net);
- BOOST_CHECK(address_v4::netmask(address_v4(0xC0000000)) == class_c_net);
- BOOST_CHECK(address_v4::netmask(address_v4(0xDFFFFF00)) == class_c_net);
- BOOST_CHECK(address_v4::netmask(address_v4(0xE0000000)) == other_net);
- BOOST_CHECK(address_v4::netmask(address_v4(0xEFFFFFFF)) == other_net);
- BOOST_CHECK(address_v4::netmask(address_v4(0xF0000000)) == other_net);
- BOOST_CHECK(address_v4::netmask(address_v4(0xFFFFFFFF)) == other_net);
+ BOOST_ASIO_CHECK(address_v4::netmask(address_v4(0x01000000)) == class_a_net);
+ BOOST_ASIO_CHECK(address_v4::netmask(address_v4(0x7F000000)) == class_a_net);
+ BOOST_ASIO_CHECK(address_v4::netmask(address_v4(0x80000000)) == class_b_net);
+ BOOST_ASIO_CHECK(address_v4::netmask(address_v4(0xBFFF0000)) == class_b_net);
+ BOOST_ASIO_CHECK(address_v4::netmask(address_v4(0xC0000000)) == class_c_net);
+ BOOST_ASIO_CHECK(address_v4::netmask(address_v4(0xDFFFFF00)) == class_c_net);
+ BOOST_ASIO_CHECK(address_v4::netmask(address_v4(0xE0000000)) == other_net);
+ BOOST_ASIO_CHECK(address_v4::netmask(address_v4(0xEFFFFFFF)) == other_net);
+ BOOST_ASIO_CHECK(address_v4::netmask(address_v4(0xF0000000)) == other_net);
+ BOOST_ASIO_CHECK(address_v4::netmask(address_v4(0xFFFFFFFF)) == other_net);
}
} // namespace ip_address_v4_runtime
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/address_v4");
- test->add(BOOST_TEST_CASE(&ip_address_v4_compile::test));
- test->add(BOOST_TEST_CASE(&ip_address_v4_runtime::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/address_v4",
+ BOOST_ASIO_TEST_CASE(ip_address_v4_compile::test)
+ BOOST_ASIO_TEST_CASE(ip_address_v4_runtime::test)
+)
diff --git a/libs/asio/test/ip/address_v6.cpp b/libs/asio/test/ip/address_v6.cpp
index 9d075017e6..a955698c6b 100644
--- a/libs/asio/test/ip/address_v6.cpp
+++ b/libs/asio/test/ip/address_v6.cpp
@@ -2,7 +2,7 @@
// address_v6.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -17,6 +17,7 @@
#include <boost/asio/ip/address_v6.hpp>
#include "../unit_test.hpp"
+#include <sstream>
//------------------------------------------------------------------------------
@@ -157,33 +158,33 @@ void test()
using boost::asio::ip::address_v6;
address_v6 a1;
- BOOST_CHECK(a1.is_unspecified());
- BOOST_CHECK(a1.scope_id() == 0);
+ BOOST_ASIO_CHECK(a1.is_unspecified());
+ BOOST_ASIO_CHECK(a1.scope_id() == 0);
address_v6::bytes_type b1 = {{ 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }};
address_v6 a2(b1, 12345);
- BOOST_CHECK(a2.to_bytes()[0] == 1);
- BOOST_CHECK(a2.to_bytes()[1] == 2);
- BOOST_CHECK(a2.to_bytes()[2] == 3);
- BOOST_CHECK(a2.to_bytes()[3] == 4);
- BOOST_CHECK(a2.to_bytes()[4] == 5);
- BOOST_CHECK(a2.to_bytes()[5] == 6);
- BOOST_CHECK(a2.to_bytes()[6] == 7);
- BOOST_CHECK(a2.to_bytes()[7] == 8);
- BOOST_CHECK(a2.to_bytes()[8] == 9);
- BOOST_CHECK(a2.to_bytes()[9] == 10);
- BOOST_CHECK(a2.to_bytes()[10] == 11);
- BOOST_CHECK(a2.to_bytes()[11] == 12);
- BOOST_CHECK(a2.to_bytes()[12] == 13);
- BOOST_CHECK(a2.to_bytes()[13] == 14);
- BOOST_CHECK(a2.to_bytes()[14] == 15);
- BOOST_CHECK(a2.to_bytes()[15] == 16);
- BOOST_CHECK(a2.scope_id() == 12345);
+ BOOST_ASIO_CHECK(a2.to_bytes()[0] == 1);
+ BOOST_ASIO_CHECK(a2.to_bytes()[1] == 2);
+ BOOST_ASIO_CHECK(a2.to_bytes()[2] == 3);
+ BOOST_ASIO_CHECK(a2.to_bytes()[3] == 4);
+ BOOST_ASIO_CHECK(a2.to_bytes()[4] == 5);
+ BOOST_ASIO_CHECK(a2.to_bytes()[5] == 6);
+ BOOST_ASIO_CHECK(a2.to_bytes()[6] == 7);
+ BOOST_ASIO_CHECK(a2.to_bytes()[7] == 8);
+ BOOST_ASIO_CHECK(a2.to_bytes()[8] == 9);
+ BOOST_ASIO_CHECK(a2.to_bytes()[9] == 10);
+ BOOST_ASIO_CHECK(a2.to_bytes()[10] == 11);
+ BOOST_ASIO_CHECK(a2.to_bytes()[11] == 12);
+ BOOST_ASIO_CHECK(a2.to_bytes()[12] == 13);
+ BOOST_ASIO_CHECK(a2.to_bytes()[13] == 14);
+ BOOST_ASIO_CHECK(a2.to_bytes()[14] == 15);
+ BOOST_ASIO_CHECK(a2.to_bytes()[15] == 16);
+ BOOST_ASIO_CHECK(a2.scope_id() == 12345);
address_v6 a3;
a3.scope_id(12345);
- BOOST_CHECK(a3.scope_id() == 12345);
+ BOOST_ASIO_CHECK(a3.scope_id() == 12345);
address_v6 unspecified_address;
address_v6::bytes_type loopback_bytes = {{ 0 }};
@@ -213,161 +214,160 @@ void test()
address_v6::bytes_type mcast_site_local_bytes = {{ 0xFF, 0x05, 1 }};
address_v6 mcast_site_local_address(mcast_site_local_bytes);
- BOOST_CHECK(!unspecified_address.is_loopback());
- BOOST_CHECK(loopback_address.is_loopback());
- BOOST_CHECK(!link_local_address.is_loopback());
- BOOST_CHECK(!site_local_address.is_loopback());
- BOOST_CHECK(!v4_mapped_address.is_loopback());
- BOOST_CHECK(!v4_compat_address.is_loopback());
- BOOST_CHECK(!mcast_global_address.is_loopback());
- BOOST_CHECK(!mcast_link_local_address.is_loopback());
- BOOST_CHECK(!mcast_node_local_address.is_loopback());
- BOOST_CHECK(!mcast_org_local_address.is_loopback());
- BOOST_CHECK(!mcast_site_local_address.is_loopback());
-
- BOOST_CHECK(unspecified_address.is_unspecified());
- BOOST_CHECK(!loopback_address.is_unspecified());
- BOOST_CHECK(!link_local_address.is_unspecified());
- BOOST_CHECK(!site_local_address.is_unspecified());
- BOOST_CHECK(!v4_mapped_address.is_unspecified());
- BOOST_CHECK(!v4_compat_address.is_unspecified());
- BOOST_CHECK(!mcast_global_address.is_unspecified());
- BOOST_CHECK(!mcast_link_local_address.is_unspecified());
- BOOST_CHECK(!mcast_node_local_address.is_unspecified());
- BOOST_CHECK(!mcast_org_local_address.is_unspecified());
- BOOST_CHECK(!mcast_site_local_address.is_unspecified());
-
- BOOST_CHECK(!unspecified_address.is_link_local());
- BOOST_CHECK(!loopback_address.is_link_local());
- BOOST_CHECK(link_local_address.is_link_local());
- BOOST_CHECK(!site_local_address.is_link_local());
- BOOST_CHECK(!v4_mapped_address.is_link_local());
- BOOST_CHECK(!v4_compat_address.is_link_local());
- BOOST_CHECK(!mcast_global_address.is_link_local());
- BOOST_CHECK(!mcast_link_local_address.is_link_local());
- BOOST_CHECK(!mcast_node_local_address.is_link_local());
- BOOST_CHECK(!mcast_org_local_address.is_link_local());
- BOOST_CHECK(!mcast_site_local_address.is_link_local());
-
- BOOST_CHECK(!unspecified_address.is_site_local());
- BOOST_CHECK(!loopback_address.is_site_local());
- BOOST_CHECK(!link_local_address.is_site_local());
- BOOST_CHECK(site_local_address.is_site_local());
- BOOST_CHECK(!v4_mapped_address.is_site_local());
- BOOST_CHECK(!v4_compat_address.is_site_local());
- BOOST_CHECK(!mcast_global_address.is_site_local());
- BOOST_CHECK(!mcast_link_local_address.is_site_local());
- BOOST_CHECK(!mcast_node_local_address.is_site_local());
- BOOST_CHECK(!mcast_org_local_address.is_site_local());
- BOOST_CHECK(!mcast_site_local_address.is_site_local());
-
- BOOST_CHECK(!unspecified_address.is_v4_mapped());
- BOOST_CHECK(!loopback_address.is_v4_mapped());
- BOOST_CHECK(!link_local_address.is_v4_mapped());
- BOOST_CHECK(!site_local_address.is_v4_mapped());
- BOOST_CHECK(v4_mapped_address.is_v4_mapped());
- BOOST_CHECK(!v4_compat_address.is_v4_mapped());
- BOOST_CHECK(!mcast_global_address.is_v4_mapped());
- BOOST_CHECK(!mcast_link_local_address.is_v4_mapped());
- BOOST_CHECK(!mcast_node_local_address.is_v4_mapped());
- BOOST_CHECK(!mcast_org_local_address.is_v4_mapped());
- BOOST_CHECK(!mcast_site_local_address.is_v4_mapped());
-
- BOOST_CHECK(!unspecified_address.is_v4_compatible());
- BOOST_CHECK(!loopback_address.is_v4_compatible());
- BOOST_CHECK(!link_local_address.is_v4_compatible());
- BOOST_CHECK(!site_local_address.is_v4_compatible());
- BOOST_CHECK(!v4_mapped_address.is_v4_compatible());
- BOOST_CHECK(v4_compat_address.is_v4_compatible());
- BOOST_CHECK(!mcast_global_address.is_v4_compatible());
- BOOST_CHECK(!mcast_link_local_address.is_v4_compatible());
- BOOST_CHECK(!mcast_node_local_address.is_v4_compatible());
- BOOST_CHECK(!mcast_org_local_address.is_v4_compatible());
- BOOST_CHECK(!mcast_site_local_address.is_v4_compatible());
-
- BOOST_CHECK(!unspecified_address.is_multicast());
- BOOST_CHECK(!loopback_address.is_multicast());
- BOOST_CHECK(!link_local_address.is_multicast());
- BOOST_CHECK(!site_local_address.is_multicast());
- BOOST_CHECK(!v4_mapped_address.is_multicast());
- BOOST_CHECK(!v4_compat_address.is_multicast());
- BOOST_CHECK(mcast_global_address.is_multicast());
- BOOST_CHECK(mcast_link_local_address.is_multicast());
- BOOST_CHECK(mcast_node_local_address.is_multicast());
- BOOST_CHECK(mcast_org_local_address.is_multicast());
- BOOST_CHECK(mcast_site_local_address.is_multicast());
-
- BOOST_CHECK(!unspecified_address.is_multicast_global());
- BOOST_CHECK(!loopback_address.is_multicast_global());
- BOOST_CHECK(!link_local_address.is_multicast_global());
- BOOST_CHECK(!site_local_address.is_multicast_global());
- BOOST_CHECK(!v4_mapped_address.is_multicast_global());
- BOOST_CHECK(!v4_compat_address.is_multicast_global());
- BOOST_CHECK(mcast_global_address.is_multicast_global());
- BOOST_CHECK(!mcast_link_local_address.is_multicast_global());
- BOOST_CHECK(!mcast_node_local_address.is_multicast_global());
- BOOST_CHECK(!mcast_org_local_address.is_multicast_global());
- BOOST_CHECK(!mcast_site_local_address.is_multicast_global());
-
- BOOST_CHECK(!unspecified_address.is_multicast_link_local());
- BOOST_CHECK(!loopback_address.is_multicast_link_local());
- BOOST_CHECK(!link_local_address.is_multicast_link_local());
- BOOST_CHECK(!site_local_address.is_multicast_link_local());
- BOOST_CHECK(!v4_mapped_address.is_multicast_link_local());
- BOOST_CHECK(!v4_compat_address.is_multicast_link_local());
- BOOST_CHECK(!mcast_global_address.is_multicast_link_local());
- BOOST_CHECK(mcast_link_local_address.is_multicast_link_local());
- BOOST_CHECK(!mcast_node_local_address.is_multicast_link_local());
- BOOST_CHECK(!mcast_org_local_address.is_multicast_link_local());
- BOOST_CHECK(!mcast_site_local_address.is_multicast_link_local());
-
- BOOST_CHECK(!unspecified_address.is_multicast_node_local());
- BOOST_CHECK(!loopback_address.is_multicast_node_local());
- BOOST_CHECK(!link_local_address.is_multicast_node_local());
- BOOST_CHECK(!site_local_address.is_multicast_node_local());
- BOOST_CHECK(!v4_mapped_address.is_multicast_node_local());
- BOOST_CHECK(!v4_compat_address.is_multicast_node_local());
- BOOST_CHECK(!mcast_global_address.is_multicast_node_local());
- BOOST_CHECK(!mcast_link_local_address.is_multicast_node_local());
- BOOST_CHECK(mcast_node_local_address.is_multicast_node_local());
- BOOST_CHECK(!mcast_org_local_address.is_multicast_node_local());
- BOOST_CHECK(!mcast_site_local_address.is_multicast_node_local());
-
- BOOST_CHECK(!unspecified_address.is_multicast_org_local());
- BOOST_CHECK(!loopback_address.is_multicast_org_local());
- BOOST_CHECK(!link_local_address.is_multicast_org_local());
- BOOST_CHECK(!site_local_address.is_multicast_org_local());
- BOOST_CHECK(!v4_mapped_address.is_multicast_org_local());
- BOOST_CHECK(!v4_compat_address.is_multicast_org_local());
- BOOST_CHECK(!mcast_global_address.is_multicast_org_local());
- BOOST_CHECK(!mcast_link_local_address.is_multicast_org_local());
- BOOST_CHECK(!mcast_node_local_address.is_multicast_org_local());
- BOOST_CHECK(mcast_org_local_address.is_multicast_org_local());
- BOOST_CHECK(!mcast_site_local_address.is_multicast_org_local());
-
- BOOST_CHECK(!unspecified_address.is_multicast_site_local());
- BOOST_CHECK(!loopback_address.is_multicast_site_local());
- BOOST_CHECK(!link_local_address.is_multicast_site_local());
- BOOST_CHECK(!site_local_address.is_multicast_site_local());
- BOOST_CHECK(!v4_mapped_address.is_multicast_site_local());
- BOOST_CHECK(!v4_compat_address.is_multicast_site_local());
- BOOST_CHECK(!mcast_global_address.is_multicast_site_local());
- BOOST_CHECK(!mcast_link_local_address.is_multicast_site_local());
- BOOST_CHECK(!mcast_node_local_address.is_multicast_site_local());
- BOOST_CHECK(!mcast_org_local_address.is_multicast_site_local());
- BOOST_CHECK(mcast_site_local_address.is_multicast_site_local());
-
- BOOST_CHECK(address_v6::loopback().is_loopback());
+ BOOST_ASIO_CHECK(!unspecified_address.is_loopback());
+ BOOST_ASIO_CHECK(loopback_address.is_loopback());
+ BOOST_ASIO_CHECK(!link_local_address.is_loopback());
+ BOOST_ASIO_CHECK(!site_local_address.is_loopback());
+ BOOST_ASIO_CHECK(!v4_mapped_address.is_loopback());
+ BOOST_ASIO_CHECK(!v4_compat_address.is_loopback());
+ BOOST_ASIO_CHECK(!mcast_global_address.is_loopback());
+ BOOST_ASIO_CHECK(!mcast_link_local_address.is_loopback());
+ BOOST_ASIO_CHECK(!mcast_node_local_address.is_loopback());
+ BOOST_ASIO_CHECK(!mcast_org_local_address.is_loopback());
+ BOOST_ASIO_CHECK(!mcast_site_local_address.is_loopback());
+
+ BOOST_ASIO_CHECK(unspecified_address.is_unspecified());
+ BOOST_ASIO_CHECK(!loopback_address.is_unspecified());
+ BOOST_ASIO_CHECK(!link_local_address.is_unspecified());
+ BOOST_ASIO_CHECK(!site_local_address.is_unspecified());
+ BOOST_ASIO_CHECK(!v4_mapped_address.is_unspecified());
+ BOOST_ASIO_CHECK(!v4_compat_address.is_unspecified());
+ BOOST_ASIO_CHECK(!mcast_global_address.is_unspecified());
+ BOOST_ASIO_CHECK(!mcast_link_local_address.is_unspecified());
+ BOOST_ASIO_CHECK(!mcast_node_local_address.is_unspecified());
+ BOOST_ASIO_CHECK(!mcast_org_local_address.is_unspecified());
+ BOOST_ASIO_CHECK(!mcast_site_local_address.is_unspecified());
+
+ BOOST_ASIO_CHECK(!unspecified_address.is_link_local());
+ BOOST_ASIO_CHECK(!loopback_address.is_link_local());
+ BOOST_ASIO_CHECK(link_local_address.is_link_local());
+ BOOST_ASIO_CHECK(!site_local_address.is_link_local());
+ BOOST_ASIO_CHECK(!v4_mapped_address.is_link_local());
+ BOOST_ASIO_CHECK(!v4_compat_address.is_link_local());
+ BOOST_ASIO_CHECK(!mcast_global_address.is_link_local());
+ BOOST_ASIO_CHECK(!mcast_link_local_address.is_link_local());
+ BOOST_ASIO_CHECK(!mcast_node_local_address.is_link_local());
+ BOOST_ASIO_CHECK(!mcast_org_local_address.is_link_local());
+ BOOST_ASIO_CHECK(!mcast_site_local_address.is_link_local());
+
+ BOOST_ASIO_CHECK(!unspecified_address.is_site_local());
+ BOOST_ASIO_CHECK(!loopback_address.is_site_local());
+ BOOST_ASIO_CHECK(!link_local_address.is_site_local());
+ BOOST_ASIO_CHECK(site_local_address.is_site_local());
+ BOOST_ASIO_CHECK(!v4_mapped_address.is_site_local());
+ BOOST_ASIO_CHECK(!v4_compat_address.is_site_local());
+ BOOST_ASIO_CHECK(!mcast_global_address.is_site_local());
+ BOOST_ASIO_CHECK(!mcast_link_local_address.is_site_local());
+ BOOST_ASIO_CHECK(!mcast_node_local_address.is_site_local());
+ BOOST_ASIO_CHECK(!mcast_org_local_address.is_site_local());
+ BOOST_ASIO_CHECK(!mcast_site_local_address.is_site_local());
+
+ BOOST_ASIO_CHECK(!unspecified_address.is_v4_mapped());
+ BOOST_ASIO_CHECK(!loopback_address.is_v4_mapped());
+ BOOST_ASIO_CHECK(!link_local_address.is_v4_mapped());
+ BOOST_ASIO_CHECK(!site_local_address.is_v4_mapped());
+ BOOST_ASIO_CHECK(v4_mapped_address.is_v4_mapped());
+ BOOST_ASIO_CHECK(!v4_compat_address.is_v4_mapped());
+ BOOST_ASIO_CHECK(!mcast_global_address.is_v4_mapped());
+ BOOST_ASIO_CHECK(!mcast_link_local_address.is_v4_mapped());
+ BOOST_ASIO_CHECK(!mcast_node_local_address.is_v4_mapped());
+ BOOST_ASIO_CHECK(!mcast_org_local_address.is_v4_mapped());
+ BOOST_ASIO_CHECK(!mcast_site_local_address.is_v4_mapped());
+
+ BOOST_ASIO_CHECK(!unspecified_address.is_v4_compatible());
+ BOOST_ASIO_CHECK(!loopback_address.is_v4_compatible());
+ BOOST_ASIO_CHECK(!link_local_address.is_v4_compatible());
+ BOOST_ASIO_CHECK(!site_local_address.is_v4_compatible());
+ BOOST_ASIO_CHECK(!v4_mapped_address.is_v4_compatible());
+ BOOST_ASIO_CHECK(v4_compat_address.is_v4_compatible());
+ BOOST_ASIO_CHECK(!mcast_global_address.is_v4_compatible());
+ BOOST_ASIO_CHECK(!mcast_link_local_address.is_v4_compatible());
+ BOOST_ASIO_CHECK(!mcast_node_local_address.is_v4_compatible());
+ BOOST_ASIO_CHECK(!mcast_org_local_address.is_v4_compatible());
+ BOOST_ASIO_CHECK(!mcast_site_local_address.is_v4_compatible());
+
+ BOOST_ASIO_CHECK(!unspecified_address.is_multicast());
+ BOOST_ASIO_CHECK(!loopback_address.is_multicast());
+ BOOST_ASIO_CHECK(!link_local_address.is_multicast());
+ BOOST_ASIO_CHECK(!site_local_address.is_multicast());
+ BOOST_ASIO_CHECK(!v4_mapped_address.is_multicast());
+ BOOST_ASIO_CHECK(!v4_compat_address.is_multicast());
+ BOOST_ASIO_CHECK(mcast_global_address.is_multicast());
+ BOOST_ASIO_CHECK(mcast_link_local_address.is_multicast());
+ BOOST_ASIO_CHECK(mcast_node_local_address.is_multicast());
+ BOOST_ASIO_CHECK(mcast_org_local_address.is_multicast());
+ BOOST_ASIO_CHECK(mcast_site_local_address.is_multicast());
+
+ BOOST_ASIO_CHECK(!unspecified_address.is_multicast_global());
+ BOOST_ASIO_CHECK(!loopback_address.is_multicast_global());
+ BOOST_ASIO_CHECK(!link_local_address.is_multicast_global());
+ BOOST_ASIO_CHECK(!site_local_address.is_multicast_global());
+ BOOST_ASIO_CHECK(!v4_mapped_address.is_multicast_global());
+ BOOST_ASIO_CHECK(!v4_compat_address.is_multicast_global());
+ BOOST_ASIO_CHECK(mcast_global_address.is_multicast_global());
+ BOOST_ASIO_CHECK(!mcast_link_local_address.is_multicast_global());
+ BOOST_ASIO_CHECK(!mcast_node_local_address.is_multicast_global());
+ BOOST_ASIO_CHECK(!mcast_org_local_address.is_multicast_global());
+ BOOST_ASIO_CHECK(!mcast_site_local_address.is_multicast_global());
+
+ BOOST_ASIO_CHECK(!unspecified_address.is_multicast_link_local());
+ BOOST_ASIO_CHECK(!loopback_address.is_multicast_link_local());
+ BOOST_ASIO_CHECK(!link_local_address.is_multicast_link_local());
+ BOOST_ASIO_CHECK(!site_local_address.is_multicast_link_local());
+ BOOST_ASIO_CHECK(!v4_mapped_address.is_multicast_link_local());
+ BOOST_ASIO_CHECK(!v4_compat_address.is_multicast_link_local());
+ BOOST_ASIO_CHECK(!mcast_global_address.is_multicast_link_local());
+ BOOST_ASIO_CHECK(mcast_link_local_address.is_multicast_link_local());
+ BOOST_ASIO_CHECK(!mcast_node_local_address.is_multicast_link_local());
+ BOOST_ASIO_CHECK(!mcast_org_local_address.is_multicast_link_local());
+ BOOST_ASIO_CHECK(!mcast_site_local_address.is_multicast_link_local());
+
+ BOOST_ASIO_CHECK(!unspecified_address.is_multicast_node_local());
+ BOOST_ASIO_CHECK(!loopback_address.is_multicast_node_local());
+ BOOST_ASIO_CHECK(!link_local_address.is_multicast_node_local());
+ BOOST_ASIO_CHECK(!site_local_address.is_multicast_node_local());
+ BOOST_ASIO_CHECK(!v4_mapped_address.is_multicast_node_local());
+ BOOST_ASIO_CHECK(!v4_compat_address.is_multicast_node_local());
+ BOOST_ASIO_CHECK(!mcast_global_address.is_multicast_node_local());
+ BOOST_ASIO_CHECK(!mcast_link_local_address.is_multicast_node_local());
+ BOOST_ASIO_CHECK(mcast_node_local_address.is_multicast_node_local());
+ BOOST_ASIO_CHECK(!mcast_org_local_address.is_multicast_node_local());
+ BOOST_ASIO_CHECK(!mcast_site_local_address.is_multicast_node_local());
+
+ BOOST_ASIO_CHECK(!unspecified_address.is_multicast_org_local());
+ BOOST_ASIO_CHECK(!loopback_address.is_multicast_org_local());
+ BOOST_ASIO_CHECK(!link_local_address.is_multicast_org_local());
+ BOOST_ASIO_CHECK(!site_local_address.is_multicast_org_local());
+ BOOST_ASIO_CHECK(!v4_mapped_address.is_multicast_org_local());
+ BOOST_ASIO_CHECK(!v4_compat_address.is_multicast_org_local());
+ BOOST_ASIO_CHECK(!mcast_global_address.is_multicast_org_local());
+ BOOST_ASIO_CHECK(!mcast_link_local_address.is_multicast_org_local());
+ BOOST_ASIO_CHECK(!mcast_node_local_address.is_multicast_org_local());
+ BOOST_ASIO_CHECK(mcast_org_local_address.is_multicast_org_local());
+ BOOST_ASIO_CHECK(!mcast_site_local_address.is_multicast_org_local());
+
+ BOOST_ASIO_CHECK(!unspecified_address.is_multicast_site_local());
+ BOOST_ASIO_CHECK(!loopback_address.is_multicast_site_local());
+ BOOST_ASIO_CHECK(!link_local_address.is_multicast_site_local());
+ BOOST_ASIO_CHECK(!site_local_address.is_multicast_site_local());
+ BOOST_ASIO_CHECK(!v4_mapped_address.is_multicast_site_local());
+ BOOST_ASIO_CHECK(!v4_compat_address.is_multicast_site_local());
+ BOOST_ASIO_CHECK(!mcast_global_address.is_multicast_site_local());
+ BOOST_ASIO_CHECK(!mcast_link_local_address.is_multicast_site_local());
+ BOOST_ASIO_CHECK(!mcast_node_local_address.is_multicast_site_local());
+ BOOST_ASIO_CHECK(!mcast_org_local_address.is_multicast_site_local());
+ BOOST_ASIO_CHECK(mcast_site_local_address.is_multicast_site_local());
+
+ BOOST_ASIO_CHECK(address_v6::loopback().is_loopback());
}
} // namespace ip_address_v6_runtime
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/address_v6");
- test->add(BOOST_TEST_CASE(&ip_address_v6_compile::test));
- test->add(BOOST_TEST_CASE(&ip_address_v6_runtime::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/address_v6",
+ BOOST_ASIO_TEST_CASE(ip_address_v6_compile::test)
+ BOOST_ASIO_TEST_CASE(ip_address_v6_runtime::test)
+)
diff --git a/libs/asio/test/ip/basic_endpoint.cpp b/libs/asio/test/ip/basic_endpoint.cpp
index 6251d6f9a1..635ab9e206 100644
--- a/libs/asio/test/ip/basic_endpoint.cpp
+++ b/libs/asio/test/ip/basic_endpoint.cpp
@@ -2,7 +2,7 @@
// basic_endpoint.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/basic_endpoint");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/basic_endpoint",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ip/basic_resolver.cpp b/libs/asio/test/ip/basic_resolver.cpp
index a5d397da50..e882bb4548 100644
--- a/libs/asio/test/ip/basic_resolver.cpp
+++ b/libs/asio/test/ip/basic_resolver.cpp
@@ -2,7 +2,7 @@
// basic_resolver.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/basic_resolver");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/basic_resolver",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ip/basic_resolver_entry.cpp b/libs/asio/test/ip/basic_resolver_entry.cpp
index ab4e909c40..b82ae30ffa 100644
--- a/libs/asio/test/ip/basic_resolver_entry.cpp
+++ b/libs/asio/test/ip/basic_resolver_entry.cpp
@@ -2,7 +2,7 @@
// basic_resolver_entry.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/basic_resolver_entry");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/basic_resolver_entry",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ip/basic_resolver_iterator.cpp b/libs/asio/test/ip/basic_resolver_iterator.cpp
index f810e83f7b..d886e8e645 100644
--- a/libs/asio/test/ip/basic_resolver_iterator.cpp
+++ b/libs/asio/test/ip/basic_resolver_iterator.cpp
@@ -2,7 +2,7 @@
// basic_resolver_iterator.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/basic_resolver_iterator");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/basic_resolver_iterator",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ip/basic_resolver_query.cpp b/libs/asio/test/ip/basic_resolver_query.cpp
index 0b5226dfd4..78886ea782 100644
--- a/libs/asio/test/ip/basic_resolver_query.cpp
+++ b/libs/asio/test/ip/basic_resolver_query.cpp
@@ -2,7 +2,7 @@
// basic_resolver_query.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/basic_resolver_query");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/basic_resolver_query",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ip/host_name.cpp b/libs/asio/test/ip/host_name.cpp
index a85fbfb51a..89eba06c78 100644
--- a/libs/asio/test/ip/host_name.cpp
+++ b/libs/asio/test/ip/host_name.cpp
@@ -2,7 +2,7 @@
// host_name.cpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -48,9 +48,8 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/host_name");
- test->add(BOOST_TEST_CASE(&ip_host_name_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/host_name",
+ BOOST_ASIO_TEST_CASE(ip_host_name_compile::test)
+)
diff --git a/libs/asio/test/ip/icmp.cpp b/libs/asio/test/ip/icmp.cpp
new file mode 100644
index 0000000000..e2cc350352
--- /dev/null
+++ b/libs/asio/test/ip/icmp.cpp
@@ -0,0 +1,462 @@
+//
+// icmp.cpp
+// ~~~~~~~~
+//
+// Copyright (c) 2003-2014 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)
+//
+
+// Disable autolinking for unit tests.
+#if !defined(BOOST_ALL_NO_LIB)
+#define BOOST_ALL_NO_LIB 1
+#endif // !defined(BOOST_ALL_NO_LIB)
+
+// Test that header file is self-contained.
+#include <boost/asio/ip/icmp.hpp>
+
+#include <cstring>
+#include <boost/asio/io_service.hpp>
+#include <boost/asio/placeholders.hpp>
+#include "../unit_test.hpp"
+#include "../archetypes/gettable_socket_option.hpp"
+#include "../archetypes/async_result.hpp"
+#include "../archetypes/io_control_command.hpp"
+#include "../archetypes/settable_socket_option.hpp"
+
+//------------------------------------------------------------------------------
+
+// ip_icmp_socket_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all public member functions on the class
+// ip::icmp::socket compile and link correctly. Runtime failures are ignored.
+
+namespace ip_icmp_socket_compile {
+
+void connect_handler(const boost::system::error_code&)
+{
+}
+
+void send_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void receive_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
+void test()
+{
+ using namespace boost::asio;
+ namespace ip = boost::asio::ip;
+
+ try
+ {
+ io_service ios;
+ char mutable_char_buffer[128] = "";
+ const char const_char_buffer[128] = "";
+ socket_base::message_flags in_flags = 0;
+ archetypes::settable_socket_option<void> settable_socket_option1;
+ archetypes::settable_socket_option<int> settable_socket_option2;
+ archetypes::settable_socket_option<double> settable_socket_option3;
+ archetypes::gettable_socket_option<void> gettable_socket_option1;
+ archetypes::gettable_socket_option<int> gettable_socket_option2;
+ archetypes::gettable_socket_option<double> gettable_socket_option3;
+ archetypes::io_control_command io_control_command;
+ archetypes::lazy_handler lazy;
+ boost::system::error_code ec;
+
+ // basic_datagram_socket constructors.
+
+ ip::icmp::socket socket1(ios);
+ ip::icmp::socket socket2(ios, ip::icmp::v4());
+ ip::icmp::socket socket3(ios, ip::icmp::v6());
+ ip::icmp::socket socket4(ios, ip::icmp::endpoint(ip::icmp::v4(), 0));
+ ip::icmp::socket socket5(ios, ip::icmp::endpoint(ip::icmp::v6(), 0));
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ int native_socket1 = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+ ip::icmp::socket socket6(ios, ip::icmp::v4(), native_socket1);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+ ip::icmp::socket socket7(std::move(socket6));
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+
+ // basic_datagram_socket operators.
+
+#if defined(BOOST_ASIO_HAS_MOVE)
+ socket1 = ip::icmp::socket(ios);
+ socket1 = std::move(socket2);
+#endif // defined(BOOST_ASIO_HAS_MOVE)
+
+ // basic_io_object functions.
+
+ io_service& ios_ref = socket1.get_io_service();
+ (void)ios_ref;
+
+ // basic_socket functions.
+
+ ip::icmp::socket::lowest_layer_type& lowest_layer = socket1.lowest_layer();
+ (void)lowest_layer;
+
+ const ip::icmp::socket& socket8 = socket1;
+ const ip::icmp::socket::lowest_layer_type& lowest_layer2
+ = socket8.lowest_layer();
+ (void)lowest_layer2;
+
+ socket1.open(ip::icmp::v4());
+ socket1.open(ip::icmp::v6());
+ socket1.open(ip::icmp::v4(), ec);
+ socket1.open(ip::icmp::v6(), ec);
+
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+ int native_socket2 = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+ socket1.assign(ip::icmp::v4(), native_socket2);
+ int native_socket3 = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+ socket1.assign(ip::icmp::v4(), native_socket3, ec);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
+
+ bool is_open = socket1.is_open();
+ (void)is_open;
+
+ socket1.close();
+ socket1.close(ec);
+
+ ip::icmp::socket::native_type native_socket4 = socket1.native();
+ (void)native_socket4;
+
+ ip::icmp::socket::native_handle_type native_socket5
+ = socket1.native_handle();
+ (void)native_socket5;
+
+ socket1.cancel();
+ socket1.cancel(ec);
+
+ bool at_mark1 = socket1.at_mark();
+ (void)at_mark1;
+ bool at_mark2 = socket1.at_mark(ec);
+ (void)at_mark2;
+
+ std::size_t available1 = socket1.available();
+ (void)available1;
+ std::size_t available2 = socket1.available(ec);
+ (void)available2;
+
+ socket1.bind(ip::icmp::endpoint(ip::icmp::v4(), 0));
+ socket1.bind(ip::icmp::endpoint(ip::icmp::v6(), 0));
+ socket1.bind(ip::icmp::endpoint(ip::icmp::v4(), 0), ec);
+ socket1.bind(ip::icmp::endpoint(ip::icmp::v6(), 0), ec);
+
+ socket1.connect(ip::icmp::endpoint(ip::icmp::v4(), 0));
+ socket1.connect(ip::icmp::endpoint(ip::icmp::v6(), 0));
+ socket1.connect(ip::icmp::endpoint(ip::icmp::v4(), 0), ec);
+ socket1.connect(ip::icmp::endpoint(ip::icmp::v6(), 0), ec);
+
+ socket1.async_connect(ip::icmp::endpoint(ip::icmp::v4(), 0),
+ &connect_handler);
+ socket1.async_connect(ip::icmp::endpoint(ip::icmp::v6(), 0),
+ &connect_handler);
+ int i1 = socket1.async_connect(ip::icmp::endpoint(ip::icmp::v4(), 0), lazy);
+ (void)i1;
+ int i2 = socket1.async_connect(ip::icmp::endpoint(ip::icmp::v6(), 0), lazy);
+ (void)i2;
+
+ socket1.set_option(settable_socket_option1);
+ socket1.set_option(settable_socket_option1, ec);
+ socket1.set_option(settable_socket_option2);
+ socket1.set_option(settable_socket_option2, ec);
+ socket1.set_option(settable_socket_option3);
+ socket1.set_option(settable_socket_option3, ec);
+
+ socket1.get_option(gettable_socket_option1);
+ socket1.get_option(gettable_socket_option1, ec);
+ socket1.get_option(gettable_socket_option2);
+ socket1.get_option(gettable_socket_option2, ec);
+ socket1.get_option(gettable_socket_option3);
+ socket1.get_option(gettable_socket_option3, ec);
+
+ socket1.io_control(io_control_command);
+ socket1.io_control(io_control_command, ec);
+
+ bool non_blocking1 = socket1.non_blocking();
+ (void)non_blocking1;
+ socket1.non_blocking(true);
+ socket1.non_blocking(false, ec);
+
+ bool non_blocking2 = socket1.native_non_blocking();
+ (void)non_blocking2;
+ socket1.native_non_blocking(true);
+ socket1.native_non_blocking(false, ec);
+
+ ip::icmp::endpoint endpoint1 = socket1.local_endpoint();
+ ip::icmp::endpoint endpoint2 = socket1.local_endpoint(ec);
+
+ ip::icmp::endpoint endpoint3 = socket1.remote_endpoint();
+ ip::icmp::endpoint endpoint4 = socket1.remote_endpoint(ec);
+
+ socket1.shutdown(socket_base::shutdown_both);
+ socket1.shutdown(socket_base::shutdown_both, ec);
+
+ // basic_datagram_socket functions.
+
+ socket1.send(buffer(mutable_char_buffer));
+ socket1.send(buffer(const_char_buffer));
+ socket1.send(null_buffers());
+ socket1.send(buffer(mutable_char_buffer), in_flags);
+ socket1.send(buffer(const_char_buffer), in_flags);
+ socket1.send(null_buffers(), in_flags);
+ socket1.send(buffer(mutable_char_buffer), in_flags, ec);
+ socket1.send(buffer(const_char_buffer), in_flags, ec);
+ socket1.send(null_buffers(), in_flags, ec);
+
+ socket1.async_send(buffer(mutable_char_buffer), &send_handler);
+ socket1.async_send(buffer(const_char_buffer), &send_handler);
+ socket1.async_send(null_buffers(), &send_handler);
+ socket1.async_send(buffer(mutable_char_buffer), in_flags, &send_handler);
+ socket1.async_send(buffer(const_char_buffer), in_flags, &send_handler);
+ socket1.async_send(null_buffers(), in_flags, &send_handler);
+ int i3 = socket1.async_send(buffer(mutable_char_buffer), lazy);
+ (void)i3;
+ int i4 = socket1.async_send(buffer(const_char_buffer), lazy);
+ (void)i4;
+ int i5 = socket1.async_send(null_buffers(), lazy);
+ (void)i5;
+ int i6 = socket1.async_send(buffer(mutable_char_buffer), in_flags, lazy);
+ (void)i6;
+ int i7 = socket1.async_send(buffer(const_char_buffer), in_flags, lazy);
+ (void)i7;
+ int i8 = socket1.async_send(null_buffers(), in_flags, lazy);
+ (void)i8;
+
+ socket1.send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0));
+ socket1.send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0));
+ socket1.send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0));
+ socket1.send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0));
+ socket1.send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v4(), 0));
+ socket1.send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v6(), 0));
+ socket1.send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags);
+ socket1.send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags);
+ socket1.send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags);
+ socket1.send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags);
+ socket1.send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags);
+ socket1.send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags);
+ socket1.send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, ec);
+ socket1.send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, ec);
+ socket1.send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, ec);
+ socket1.send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, ec);
+ socket1.send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, ec);
+ socket1.send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, ec);
+
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), &send_handler);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), &send_handler);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), &send_handler);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), &send_handler);
+ socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), &send_handler);
+ socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), &send_handler);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, &send_handler);
+ socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, &send_handler);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, &send_handler);
+ socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, &send_handler);
+ socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, &send_handler);
+ socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, &send_handler);
+ int i9 = socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), lazy);
+ (void)i9;
+ int i10 = socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), lazy);
+ (void)i10;
+ int i11 = socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), lazy);
+ (void)i11;
+ int i12 = socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), lazy);
+ (void)i12;
+ int i13 = socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), lazy);
+ (void)i13;
+ int i14 = socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), lazy);
+ (void)i14;
+ int i15 = socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, lazy);
+ (void)i15;
+ int i16 = socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, lazy);
+ (void)i16;
+ int i17 = socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, lazy);
+ (void)i17;
+ int i18 = socket1.async_send_to(buffer(const_char_buffer),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, lazy);
+ (void)i18;
+ int i19 = socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, lazy);
+ (void)i19;
+ int i20 = socket1.async_send_to(null_buffers(),
+ ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, lazy);
+ (void)i20;
+
+ socket1.receive(buffer(mutable_char_buffer));
+ socket1.receive(null_buffers());
+ socket1.receive(buffer(mutable_char_buffer), in_flags);
+ socket1.receive(null_buffers(), in_flags);
+ socket1.receive(buffer(mutable_char_buffer), in_flags, ec);
+ socket1.receive(null_buffers(), in_flags, ec);
+
+ socket1.async_receive(buffer(mutable_char_buffer), &receive_handler);
+ socket1.async_receive(null_buffers(), &receive_handler);
+ socket1.async_receive(buffer(mutable_char_buffer), in_flags,
+ &receive_handler);
+ socket1.async_receive(null_buffers(), in_flags, &receive_handler);
+ int i21 = socket1.async_receive(buffer(mutable_char_buffer), lazy);
+ (void)i21;
+ int i22 = socket1.async_receive(null_buffers(), lazy);
+ (void)i22;
+ int i23 = socket1.async_receive(buffer(mutable_char_buffer),
+ in_flags, lazy);
+ (void)i23;
+ int i24 = socket1.async_receive(null_buffers(), in_flags, lazy);
+ (void)i24;
+
+ ip::icmp::endpoint endpoint;
+ socket1.receive_from(buffer(mutable_char_buffer), endpoint);
+ socket1.receive_from(null_buffers(), endpoint);
+ socket1.receive_from(buffer(mutable_char_buffer), endpoint, in_flags);
+ socket1.receive_from(null_buffers(), endpoint, in_flags);
+ socket1.receive_from(buffer(mutable_char_buffer), endpoint, in_flags, ec);
+ socket1.receive_from(null_buffers(), endpoint, in_flags, ec);
+
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, &receive_handler);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, &receive_handler);
+ socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, in_flags, &receive_handler);
+ socket1.async_receive_from(null_buffers(),
+ endpoint, in_flags, &receive_handler);
+ int i25 = socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, lazy);
+ (void)i25;
+ int i26 = socket1.async_receive_from(null_buffers(),
+ endpoint, lazy);
+ (void)i26;
+ int i27 = socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, in_flags, lazy);
+ (void)i27;
+ int i28 = socket1.async_receive_from(null_buffers(),
+ endpoint, in_flags, lazy);
+ (void)i28;
+ }
+ catch (std::exception&)
+ {
+ }
+}
+
+} // namespace ip_icmp_socket_compile
+
+//------------------------------------------------------------------------------
+
+// ip_icmp_resolver_compile test
+// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// The following test checks that all public member functions on the class
+// ip::icmp::resolver compile and link correctly. Runtime failures are ignored.
+
+namespace ip_icmp_resolver_compile {
+
+void resolve_handler(const boost::system::error_code&,
+ boost::asio::ip::icmp::resolver::iterator)
+{
+}
+
+void test()
+{
+ using namespace boost::asio;
+ namespace ip = boost::asio::ip;
+
+ try
+ {
+ io_service ios;
+ archetypes::lazy_handler lazy;
+ boost::system::error_code ec;
+ ip::icmp::resolver::query q(ip::icmp::v4(), "localhost", "0");
+ ip::icmp::endpoint e(ip::address_v4::loopback(), 0);
+
+ // basic_resolver constructors.
+
+ ip::icmp::resolver resolver(ios);
+
+ // basic_io_object functions.
+
+ io_service& ios_ref = resolver.get_io_service();
+ (void)ios_ref;
+
+ // basic_resolver functions.
+
+ resolver.cancel();
+
+ ip::icmp::resolver::iterator iter1 = resolver.resolve(q);
+ (void)iter1;
+
+ ip::icmp::resolver::iterator iter2 = resolver.resolve(q, ec);
+ (void)iter2;
+
+ ip::icmp::resolver::iterator iter3 = resolver.resolve(e);
+ (void)iter3;
+
+ ip::icmp::resolver::iterator iter4 = resolver.resolve(e, ec);
+ (void)iter4;
+
+ resolver.async_resolve(q, &resolve_handler);
+ int i1 = resolver.async_resolve(q, lazy);
+ (void)i1;
+
+ resolver.async_resolve(e, &resolve_handler);
+ int i2 = resolver.async_resolve(e, lazy);
+ (void)i2;
+ }
+ catch (std::exception&)
+ {
+ }
+}
+
+} // namespace ip_icmp_resolver_compile
+
+//------------------------------------------------------------------------------
+
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/icmp",
+ BOOST_ASIO_TEST_CASE(ip_icmp_socket_compile::test)
+ BOOST_ASIO_TEST_CASE(ip_icmp_resolver_compile::test)
+)
diff --git a/libs/asio/test/ip/multicast.cpp b/libs/asio/test/ip/multicast.cpp
index c5eca96ad6..b5be1c2760 100644
--- a/libs/asio/test/ip/multicast.cpp
+++ b/libs/asio/test/ip/multicast.cpp
@@ -2,7 +2,7 @@
// multicast.cpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -131,23 +131,37 @@ void test()
sock_v6.bind(ep_v6, ec);
bool have_v6 = !ec;
- BOOST_CHECK(have_v4 || have_v6);
+ BOOST_ASIO_CHECK(have_v4 || have_v6);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Windows CE seems to have problems with some multicast group addresses.
// The following address works on CE, but as it is not a private multicast
// address it will not be used on other platforms.
const ip::address multicast_address_v4 =
ip::address::from_string("239.0.0.4", ec);
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
const ip::address multicast_address_v4 =
ip::address::from_string("239.255.0.1", ec);
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK(!have_v4 || !ec);
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK(!have_v4 || !ec);
+#if (defined(__MACH__) && defined(__APPLE__)) \
+ || defined(__FreeBSD__) \
+ || defined(__NetBSD__) \
+ || defined(__OpenBSD__)
+ const ip::address multicast_address_v6 =
+ ip::address::from_string("ff02::1%lo0", ec);
+#else // (defined(__MACH__) && defined(__APPLE__))
+ // || defined(__FreeBSD__)
+ // || defined(__NetBSD__)
+ // || defined(__OpenBSD__)
const ip::address multicast_address_v6 =
ip::address::from_string("ff01::1", ec);
- BOOST_CHECK(!have_v6 || !ec);
+#endif // (defined(__MACH__) && defined(__APPLE__))
+ // || defined(__FreeBSD__)
+ // || defined(__NetBSD__)
+ // || defined(__OpenBSD__)
+ BOOST_ASIO_CHECK(!have_v6 || !ec);
// join_group class.
@@ -155,14 +169,14 @@ void test()
{
ip::multicast::join_group join_group(multicast_address_v4);
sock_v4.set_option(join_group, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
}
if (have_v6)
{
ip::multicast::join_group join_group(multicast_address_v6);
sock_v6.set_option(join_group, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
}
// leave_group class.
@@ -171,14 +185,14 @@ void test()
{
ip::multicast::leave_group leave_group(multicast_address_v4);
sock_v4.set_option(leave_group, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
}
if (have_v6)
{
ip::multicast::leave_group leave_group(multicast_address_v6);
sock_v6.set_option(leave_group, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
}
// outbound_interface class.
@@ -188,7 +202,7 @@ void test()
ip::multicast::outbound_interface outbound_interface(
ip::address_v4::loopback());
sock_v4.set_option(outbound_interface, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
}
if (have_v6)
@@ -199,7 +213,7 @@ void test()
ip::multicast::outbound_interface outbound_interface(1);
#endif
sock_v6.set_option(outbound_interface, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
}
// hops class.
@@ -207,47 +221,47 @@ void test()
if (have_v4)
{
ip::multicast::hops hops1(1);
- BOOST_CHECK(hops1.value() == 1);
+ BOOST_ASIO_CHECK(hops1.value() == 1);
sock_v4.set_option(hops1, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
ip::multicast::hops hops2;
sock_v4.get_option(hops2, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(hops2.value() == 1);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(hops2.value() == 1);
ip::multicast::hops hops3(0);
- BOOST_CHECK(hops3.value() == 0);
+ BOOST_ASIO_CHECK(hops3.value() == 0);
sock_v4.set_option(hops3, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
ip::multicast::hops hops4;
sock_v4.get_option(hops4, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(hops4.value() == 0);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(hops4.value() == 0);
}
if (have_v6)
{
ip::multicast::hops hops1(1);
- BOOST_CHECK(hops1.value() == 1);
+ BOOST_ASIO_CHECK(hops1.value() == 1);
sock_v6.set_option(hops1, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
ip::multicast::hops hops2;
sock_v6.get_option(hops2, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(hops2.value() == 1);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(hops2.value() == 1);
ip::multicast::hops hops3(0);
- BOOST_CHECK(hops3.value() == 0);
+ BOOST_ASIO_CHECK(hops3.value() == 0);
sock_v6.set_option(hops3, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
ip::multicast::hops hops4;
sock_v6.get_option(hops4, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(hops4.value() == 0);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(hops4.value() == 0);
}
// enable_loopback class.
@@ -255,85 +269,85 @@ void test()
if (have_v4)
{
ip::multicast::enable_loopback enable_loopback1(true);
- BOOST_CHECK(enable_loopback1.value());
- BOOST_CHECK(static_cast<bool>(enable_loopback1));
- BOOST_CHECK(!!enable_loopback1);
+ BOOST_ASIO_CHECK(enable_loopback1.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(enable_loopback1));
+ BOOST_ASIO_CHECK(!!enable_loopback1);
sock_v4.set_option(enable_loopback1, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
ip::multicast::enable_loopback enable_loopback2;
sock_v4.get_option(enable_loopback2, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Not supported under Windows CE but can get value.
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(enable_loopback2.value());
- BOOST_CHECK(static_cast<bool>(enable_loopback2));
- BOOST_CHECK(!!enable_loopback2);
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(enable_loopback2.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(enable_loopback2));
+ BOOST_ASIO_CHECK(!!enable_loopback2);
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
ip::multicast::enable_loopback enable_loopback3(false);
- BOOST_CHECK(!enable_loopback3.value());
- BOOST_CHECK(!static_cast<bool>(enable_loopback3));
- BOOST_CHECK(!enable_loopback3);
+ BOOST_ASIO_CHECK(!enable_loopback3.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(enable_loopback3));
+ BOOST_ASIO_CHECK(!enable_loopback3);
sock_v4.set_option(enable_loopback3, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
ip::multicast::enable_loopback enable_loopback4;
sock_v4.get_option(enable_loopback4, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Not supported under Windows CE but can get value.
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(!enable_loopback4.value());
- BOOST_CHECK(!static_cast<bool>(enable_loopback4));
- BOOST_CHECK(!enable_loopback4);
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(!enable_loopback4.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(enable_loopback4));
+ BOOST_ASIO_CHECK(!enable_loopback4);
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
}
if (have_v6)
{
ip::multicast::enable_loopback enable_loopback1(true);
- BOOST_CHECK(enable_loopback1.value());
- BOOST_CHECK(static_cast<bool>(enable_loopback1));
- BOOST_CHECK(!!enable_loopback1);
+ BOOST_ASIO_CHECK(enable_loopback1.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(enable_loopback1));
+ BOOST_ASIO_CHECK(!!enable_loopback1);
sock_v6.set_option(enable_loopback1, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
ip::multicast::enable_loopback enable_loopback2;
sock_v6.get_option(enable_loopback2, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(enable_loopback2.value());
- BOOST_CHECK(static_cast<bool>(enable_loopback2));
- BOOST_CHECK(!!enable_loopback2);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(enable_loopback2.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(enable_loopback2));
+ BOOST_ASIO_CHECK(!!enable_loopback2);
ip::multicast::enable_loopback enable_loopback3(false);
- BOOST_CHECK(!enable_loopback3.value());
- BOOST_CHECK(!static_cast<bool>(enable_loopback3));
- BOOST_CHECK(!enable_loopback3);
+ BOOST_ASIO_CHECK(!enable_loopback3.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(enable_loopback3));
+ BOOST_ASIO_CHECK(!enable_loopback3);
sock_v6.set_option(enable_loopback3, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
ip::multicast::enable_loopback enable_loopback4;
sock_v6.get_option(enable_loopback4, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(!enable_loopback4.value());
- BOOST_CHECK(!static_cast<bool>(enable_loopback4));
- BOOST_CHECK(!enable_loopback4);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(!enable_loopback4.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(enable_loopback4));
+ BOOST_ASIO_CHECK(!enable_loopback4);
}
}
@@ -341,10 +355,9 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/multicast");
- test->add(BOOST_TEST_CASE(&ip_multicast_compile::test));
- test->add(BOOST_TEST_CASE(&ip_multicast_runtime::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/multicast",
+ BOOST_ASIO_TEST_CASE(ip_multicast_compile::test)
+ BOOST_ASIO_TEST_CASE(ip_multicast_runtime::test)
+)
diff --git a/libs/asio/test/ip/resolver_query_base.cpp b/libs/asio/test/ip/resolver_query_base.cpp
index 454d91ce0d..c69942c239 100644
--- a/libs/asio/test/ip/resolver_query_base.cpp
+++ b/libs/asio/test/ip/resolver_query_base.cpp
@@ -2,7 +2,7 @@
// resolver_query_base.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/resolver_query_base");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/resolver_query_base",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ip/resolver_service.cpp b/libs/asio/test/ip/resolver_service.cpp
index b3fd7c9197..aa1d0435dc 100644
--- a/libs/asio/test/ip/resolver_service.cpp
+++ b/libs/asio/test/ip/resolver_service.cpp
@@ -2,7 +2,7 @@
// resolver_service.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/resolver_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/resolver_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ip/tcp.cpp b/libs/asio/test/ip/tcp.cpp
index d6e6fd811d..e8e13e5c67 100644
--- a/libs/asio/test/ip/tcp.cpp
+++ b/libs/asio/test/ip/tcp.cpp
@@ -2,7 +2,7 @@
// tcp.cpp
// ~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -19,18 +19,28 @@
// Test that header file is self-contained.
#include <boost/asio/ip/tcp.hpp>
-#include <boost/array.hpp>
-#include <boost/bind.hpp>
#include <cstring>
#include <boost/asio/io_service.hpp>
-#include <boost/asio/placeholders.hpp>
#include <boost/asio/read.hpp>
#include <boost/asio/write.hpp>
#include "../unit_test.hpp"
#include "../archetypes/gettable_socket_option.hpp"
+#include "../archetypes/async_result.hpp"
#include "../archetypes/io_control_command.hpp"
#include "../archetypes/settable_socket_option.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+# include <boost/array.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+# include <array>
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
//------------------------------------------------------------------------------
// ip_tcp_compile test
@@ -88,32 +98,32 @@ void test()
// no_delay class.
ip::tcp::no_delay no_delay1(true);
- BOOST_CHECK(no_delay1.value());
- BOOST_CHECK(static_cast<bool>(no_delay1));
- BOOST_CHECK(!!no_delay1);
+ BOOST_ASIO_CHECK(no_delay1.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(no_delay1));
+ BOOST_ASIO_CHECK(!!no_delay1);
sock.set_option(no_delay1, ec);
- BOOST_CHECK(!ec);
+ BOOST_ASIO_CHECK(!ec);
ip::tcp::no_delay no_delay2;
sock.get_option(no_delay2, ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(no_delay2.value());
- BOOST_CHECK(static_cast<bool>(no_delay2));
- BOOST_CHECK(!!no_delay2);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(no_delay2.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(no_delay2));
+ BOOST_ASIO_CHECK(!!no_delay2);
ip::tcp::no_delay no_delay3(false);
- BOOST_CHECK(!no_delay3.value());
- BOOST_CHECK(!static_cast<bool>(no_delay3));
- BOOST_CHECK(!no_delay3);
+ BOOST_ASIO_CHECK(!no_delay3.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(no_delay3));
+ BOOST_ASIO_CHECK(!no_delay3);
sock.set_option(no_delay3, ec);
- BOOST_CHECK(!ec);
+ BOOST_ASIO_CHECK(!ec);
ip::tcp::no_delay no_delay4;
sock.get_option(no_delay4, ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(!no_delay4.value());
- BOOST_CHECK(!static_cast<bool>(no_delay4));
- BOOST_CHECK(!no_delay4);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(!no_delay4.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(no_delay4));
+ BOOST_ASIO_CHECK(!no_delay4);
}
} // namespace ip_tcp_runtime
@@ -149,6 +159,12 @@ void read_some_handler(const boost::system::error_code&, std::size_t)
void test()
{
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+ using boost::array;
+#else // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+ using std::array;
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
using namespace boost::asio;
namespace ip = boost::asio::ip;
@@ -157,10 +173,10 @@ void test()
io_service ios;
char mutable_char_buffer[128] = "";
const char const_char_buffer[128] = "";
- boost::array<boost::asio::mutable_buffer, 2> mutable_buffers = {{
+ array<boost::asio::mutable_buffer, 2> mutable_buffers = {{
boost::asio::buffer(mutable_char_buffer, 10),
boost::asio::buffer(mutable_char_buffer + 10, 10) }};
- boost::array<boost::asio::const_buffer, 2> const_buffers = {{
+ array<boost::asio::const_buffer, 2> const_buffers = {{
boost::asio::buffer(const_char_buffer, 10),
boost::asio::buffer(const_char_buffer + 10, 10) }};
socket_base::message_flags in_flags = 0;
@@ -171,6 +187,7 @@ void test()
archetypes::gettable_socket_option<int> gettable_socket_option2;
archetypes::gettable_socket_option<double> gettable_socket_option3;
archetypes::io_control_command io_control_command;
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
// basic_stream_socket constructors.
@@ -180,11 +197,13 @@ void test()
ip::tcp::socket socket3(ios, ip::tcp::v6());
ip::tcp::socket socket4(ios, ip::tcp::endpoint(ip::tcp::v4(), 0));
ip::tcp::socket socket5(ios, ip::tcp::endpoint(ip::tcp::v6(), 0));
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
int native_socket1 = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
ip::tcp::socket socket6(ios, ip::tcp::v4(), native_socket1);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
#if defined(BOOST_ASIO_HAS_MOVE)
- ip::tcp::socket socket7(std::move(socket6));
+ ip::tcp::socket socket7(std::move(socket5));
#endif // defined(BOOST_ASIO_HAS_MOVE)
// basic_stream_socket operators.
@@ -214,10 +233,12 @@ void test()
socket1.open(ip::tcp::v4(), ec);
socket1.open(ip::tcp::v6(), ec);
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
int native_socket2 = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
socket1.assign(ip::tcp::v4(), native_socket2);
int native_socket3 = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
socket1.assign(ip::tcp::v4(), native_socket3, ec);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
bool is_open = socket1.is_open();
(void)is_open;
@@ -259,6 +280,10 @@ void test()
&connect_handler);
socket1.async_connect(ip::tcp::endpoint(ip::tcp::v6(), 0),
&connect_handler);
+ int i1 = socket1.async_connect(ip::tcp::endpoint(ip::tcp::v4(), 0), lazy);
+ (void)i1;
+ int i2 = socket1.async_connect(ip::tcp::endpoint(ip::tcp::v6(), 0), lazy);
+ (void)i2;
socket1.set_option(settable_socket_option1);
socket1.set_option(settable_socket_option1, ec);
@@ -324,6 +349,26 @@ void test()
socket1.async_send(mutable_buffers, in_flags, &send_handler);
socket1.async_send(const_buffers, in_flags, &send_handler);
socket1.async_send(null_buffers(), in_flags, &send_handler);
+ int i3 = socket1.async_send(buffer(mutable_char_buffer), lazy);
+ (void)i3;
+ int i4 = socket1.async_send(buffer(const_char_buffer), lazy);
+ (void)i4;
+ int i5 = socket1.async_send(mutable_buffers, lazy);
+ (void)i5;
+ int i6 = socket1.async_send(const_buffers, lazy);
+ (void)i6;
+ int i7 = socket1.async_send(null_buffers(), lazy);
+ (void)i7;
+ int i8 = socket1.async_send(buffer(mutable_char_buffer), in_flags, lazy);
+ (void)i8;
+ int i9 = socket1.async_send(buffer(const_char_buffer), in_flags, lazy);
+ (void)i9;
+ int i10 = socket1.async_send(mutable_buffers, in_flags, lazy);
+ (void)i10;
+ int i11 = socket1.async_send(const_buffers, in_flags, lazy);
+ (void)i11;
+ int i12 = socket1.async_send(null_buffers(), in_flags, lazy);
+ (void)i12;
socket1.receive(buffer(mutable_char_buffer));
socket1.receive(mutable_buffers);
@@ -342,6 +387,19 @@ void test()
&receive_handler);
socket1.async_receive(mutable_buffers, in_flags, &receive_handler);
socket1.async_receive(null_buffers(), in_flags, &receive_handler);
+ int i13 = socket1.async_receive(buffer(mutable_char_buffer), lazy);
+ (void)i13;
+ int i14 = socket1.async_receive(mutable_buffers, lazy);
+ (void)i14;
+ int i15 = socket1.async_receive(null_buffers(), lazy);
+ (void)i15;
+ int i16 = socket1.async_receive(buffer(mutable_char_buffer), in_flags,
+ lazy);
+ (void)i16;
+ int i17 = socket1.async_receive(mutable_buffers, in_flags, lazy);
+ (void)i17;
+ int i18 = socket1.async_receive(null_buffers(), in_flags, lazy);
+ (void)i18;
socket1.write_some(buffer(mutable_char_buffer));
socket1.write_some(buffer(const_char_buffer));
@@ -359,6 +417,16 @@ void test()
socket1.async_write_some(mutable_buffers, &write_some_handler);
socket1.async_write_some(const_buffers, &write_some_handler);
socket1.async_write_some(null_buffers(), &write_some_handler);
+ int i19 = socket1.async_write_some(buffer(mutable_char_buffer), lazy);
+ (void)i19;
+ int i20 = socket1.async_write_some(buffer(const_char_buffer), lazy);
+ (void)i20;
+ int i21 = socket1.async_write_some(mutable_buffers, lazy);
+ (void)i21;
+ int i22 = socket1.async_write_some(const_buffers, lazy);
+ (void)i22;
+ int i23 = socket1.async_write_some(null_buffers(), lazy);
+ (void)i23;
socket1.read_some(buffer(mutable_char_buffer));
socket1.read_some(mutable_buffers);
@@ -370,6 +438,12 @@ void test()
socket1.async_read_some(buffer(mutable_char_buffer), &read_some_handler);
socket1.async_read_some(mutable_buffers, &read_some_handler);
socket1.async_read_some(null_buffers(), &read_some_handler);
+ int i24 = socket1.async_read_some(buffer(mutable_char_buffer), lazy);
+ (void)i24;
+ int i25 = socket1.async_read_some(mutable_buffers, lazy);
+ (void)i25;
+ int i26 = socket1.async_read_some(null_buffers(), lazy);
+ (void)i26;
}
catch (std::exception&)
{
@@ -393,48 +467,48 @@ void handle_read_noop(const boost::system::error_code& err,
size_t bytes_transferred, bool* called)
{
*called = true;
- BOOST_CHECK(!err);
- BOOST_CHECK(bytes_transferred == 0);
+ BOOST_ASIO_CHECK(!err);
+ BOOST_ASIO_CHECK(bytes_transferred == 0);
}
void handle_write_noop(const boost::system::error_code& err,
size_t bytes_transferred, bool* called)
{
*called = true;
- BOOST_CHECK(!err);
- BOOST_CHECK(bytes_transferred == 0);
+ BOOST_ASIO_CHECK(!err);
+ BOOST_ASIO_CHECK(bytes_transferred == 0);
}
void handle_read(const boost::system::error_code& err,
size_t bytes_transferred, bool* called)
{
*called = true;
- BOOST_CHECK(!err);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(!err);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
}
void handle_write(const boost::system::error_code& err,
size_t bytes_transferred, bool* called)
{
*called = true;
- BOOST_CHECK(!err);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(!err);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
}
void handle_read_cancel(const boost::system::error_code& err,
size_t bytes_transferred, bool* called)
{
*called = true;
- BOOST_CHECK(err == boost::asio::error::operation_aborted);
- BOOST_CHECK(bytes_transferred == 0);
+ BOOST_ASIO_CHECK(err == boost::asio::error::operation_aborted);
+ BOOST_ASIO_CHECK(bytes_transferred == 0);
}
void handle_read_eof(const boost::system::error_code& err,
size_t bytes_transferred, bool* called)
{
*called = true;
- BOOST_CHECK(err == boost::asio::error::eof);
- BOOST_CHECK(bytes_transferred == 0);
+ BOOST_ASIO_CHECK(err == boost::asio::error::eof);
+ BOOST_ASIO_CHECK(bytes_transferred == 0);
}
void test()
@@ -443,6 +517,14 @@ void test()
using namespace boost::asio;
namespace ip = boost::asio::ip;
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
io_service ios;
ip::tcp::acceptor acceptor(ios, ip::tcp::endpoint(ip::tcp::v4(), 0));
@@ -460,27 +542,23 @@ void test()
bool read_noop_completed = false;
client_side_socket.async_read_some(
boost::asio::mutable_buffers_1(0, 0),
- boost::bind(handle_read_noop,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- &read_noop_completed));
+ bindns::bind(handle_read_noop,
+ _1, _2, &read_noop_completed));
ios.run();
- BOOST_CHECK(read_noop_completed);
+ BOOST_ASIO_CHECK(read_noop_completed);
// No-op write.
bool write_noop_completed = false;
client_side_socket.async_write_some(
boost::asio::const_buffers_1(0, 0),
- boost::bind(handle_write_noop,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- &write_noop_completed));
+ bindns::bind(handle_write_noop,
+ _1, _2, &write_noop_completed));
ios.reset();
ios.run();
- BOOST_CHECK(write_noop_completed);
+ BOOST_ASIO_CHECK(write_noop_completed);
// Read and write to transfer data.
@@ -488,60 +566,52 @@ void test()
bool read_completed = false;
boost::asio::async_read(client_side_socket,
boost::asio::buffer(read_buffer),
- boost::bind(handle_read,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- &read_completed));
+ bindns::bind(handle_read,
+ _1, _2, &read_completed));
bool write_completed = false;
boost::asio::async_write(server_side_socket,
boost::asio::buffer(write_data),
- boost::bind(handle_write,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- &write_completed));
+ bindns::bind(handle_write,
+ _1, _2, &write_completed));
ios.reset();
ios.run();
- BOOST_CHECK(read_completed);
- BOOST_CHECK(write_completed);
- BOOST_CHECK(memcmp(read_buffer, write_data, sizeof(write_data)) == 0);
+ BOOST_ASIO_CHECK(read_completed);
+ BOOST_ASIO_CHECK(write_completed);
+ BOOST_ASIO_CHECK(memcmp(read_buffer, write_data, sizeof(write_data)) == 0);
// Cancelled read.
bool read_cancel_completed = false;
boost::asio::async_read(server_side_socket,
boost::asio::buffer(read_buffer),
- boost::bind(handle_read_cancel,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- &read_cancel_completed));
+ bindns::bind(handle_read_cancel,
+ _1, _2, &read_cancel_completed));
ios.reset();
ios.poll();
- BOOST_CHECK(!read_cancel_completed);
+ BOOST_ASIO_CHECK(!read_cancel_completed);
server_side_socket.cancel();
ios.reset();
ios.run();
- BOOST_CHECK(read_cancel_completed);
+ BOOST_ASIO_CHECK(read_cancel_completed);
// A read when the peer closes socket should fail with eof.
bool read_eof_completed = false;
boost::asio::async_read(client_side_socket,
boost::asio::buffer(read_buffer),
- boost::bind(handle_read_eof,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- &read_eof_completed));
+ bindns::bind(handle_read_eof,
+ _1, _2, &read_eof_completed));
server_side_socket.close();
ios.reset();
ios.run();
- BOOST_CHECK(read_eof_completed);
+ BOOST_ASIO_CHECK(read_eof_completed);
}
} // namespace ip_tcp_socket_runtime
@@ -576,6 +646,7 @@ void test()
archetypes::gettable_socket_option<int> gettable_socket_option2;
archetypes::gettable_socket_option<double> gettable_socket_option3;
archetypes::io_control_command io_control_command;
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
// basic_socket_acceptor constructors.
@@ -585,11 +656,13 @@ void test()
ip::tcp::acceptor acceptor3(ios, ip::tcp::v6());
ip::tcp::acceptor acceptor4(ios, ip::tcp::endpoint(ip::tcp::v4(), 0));
ip::tcp::acceptor acceptor5(ios, ip::tcp::endpoint(ip::tcp::v6(), 0));
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
int native_acceptor1 = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
ip::tcp::acceptor acceptor6(ios, ip::tcp::v4(), native_acceptor1);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
#if defined(BOOST_ASIO_HAS_MOVE)
- ip::tcp::acceptor acceptor7(std::move(acceptor6));
+ ip::tcp::acceptor acceptor7(std::move(acceptor5));
#endif // defined(BOOST_ASIO_HAS_MOVE)
// basic_socket_acceptor operators.
@@ -611,10 +684,12 @@ void test()
acceptor1.open(ip::tcp::v4(), ec);
acceptor1.open(ip::tcp::v6(), ec);
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
int native_acceptor2 = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
acceptor1.assign(ip::tcp::v4(), native_acceptor2);
int native_acceptor3 = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
acceptor1.assign(ip::tcp::v4(), native_acceptor3, ec);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
bool is_open = acceptor1.is_open();
(void)is_open;
@@ -674,6 +749,10 @@ void test()
acceptor1.async_accept(peer_socket, &accept_handler);
acceptor1.async_accept(peer_socket, peer_endpoint, &accept_handler);
+ int i1 = acceptor1.async_accept(peer_socket, lazy);
+ (void)i1;
+ int i2 = acceptor1.async_accept(peer_socket, peer_endpoint, lazy);
+ (void)i2;
}
catch (std::exception&)
{
@@ -693,12 +772,12 @@ namespace ip_tcp_acceptor_runtime {
void handle_accept(const boost::system::error_code& err)
{
- BOOST_CHECK(!err);
+ BOOST_ASIO_CHECK(!err);
}
void handle_connect(const boost::system::error_code& err)
{
- BOOST_CHECK(!err);
+ BOOST_ASIO_CHECK(!err);
}
void test()
@@ -730,11 +809,12 @@ void test()
ip::tcp::endpoint client_side_local_endpoint
= client_side_socket.local_endpoint();
- BOOST_CHECK(client_side_local_endpoint.port() == client_endpoint.port());
+ BOOST_ASIO_CHECK(client_side_local_endpoint.port() == client_endpoint.port());
ip::tcp::endpoint server_side_remote_endpoint
= server_side_socket.remote_endpoint();
- BOOST_CHECK(server_side_remote_endpoint.port() == client_endpoint.port());
+ BOOST_ASIO_CHECK(server_side_remote_endpoint.port()
+ == client_endpoint.port());
client_side_socket.close();
server_side_socket.close();
@@ -754,10 +834,11 @@ void test()
ios.run();
client_side_local_endpoint = client_side_socket.local_endpoint();
- BOOST_CHECK(client_side_local_endpoint.port() == client_endpoint.port());
+ BOOST_ASIO_CHECK(client_side_local_endpoint.port() == client_endpoint.port());
server_side_remote_endpoint = server_side_socket.remote_endpoint();
- BOOST_CHECK(server_side_remote_endpoint.port() == client_endpoint.port());
+ BOOST_ASIO_CHECK(server_side_remote_endpoint.port()
+ == client_endpoint.port());
}
} // namespace ip_tcp_acceptor_runtime
@@ -784,6 +865,7 @@ void test()
try
{
io_service ios;
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
ip::tcp::resolver::query q(ip::tcp::v4(), "localhost", "0");
ip::tcp::endpoint e(ip::address_v4::loopback(), 0);
@@ -814,8 +896,12 @@ void test()
(void)iter4;
resolver.async_resolve(q, &resolve_handler);
+ int i1 = resolver.async_resolve(q, lazy);
+ (void)i1;
resolver.async_resolve(e, &resolve_handler);
+ int i2 = resolver.async_resolve(e, lazy);
+ (void)i2;
}
catch (std::exception&)
{
@@ -826,15 +912,14 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/tcp");
- test->add(BOOST_TEST_CASE(&ip_tcp_compile::test));
- test->add(BOOST_TEST_CASE(&ip_tcp_runtime::test));
- test->add(BOOST_TEST_CASE(&ip_tcp_socket_compile::test));
- test->add(BOOST_TEST_CASE(&ip_tcp_socket_runtime::test));
- test->add(BOOST_TEST_CASE(&ip_tcp_acceptor_compile::test));
- test->add(BOOST_TEST_CASE(&ip_tcp_acceptor_runtime::test));
- test->add(BOOST_TEST_CASE(&ip_tcp_resolver_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/tcp",
+ BOOST_ASIO_TEST_CASE(ip_tcp_compile::test)
+ BOOST_ASIO_TEST_CASE(ip_tcp_runtime::test)
+ BOOST_ASIO_TEST_CASE(ip_tcp_socket_compile::test)
+ BOOST_ASIO_TEST_CASE(ip_tcp_socket_runtime::test)
+ BOOST_ASIO_TEST_CASE(ip_tcp_acceptor_compile::test)
+ BOOST_ASIO_TEST_CASE(ip_tcp_acceptor_runtime::test)
+ BOOST_ASIO_TEST_CASE(ip_tcp_resolver_compile::test)
+)
diff --git a/libs/asio/test/ip/udp.cpp b/libs/asio/test/ip/udp.cpp
index 7952ff11d2..428ed0ee06 100644
--- a/libs/asio/test/ip/udp.cpp
+++ b/libs/asio/test/ip/udp.cpp
@@ -2,7 +2,7 @@
// udp.cpp
// ~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,15 +16,20 @@
// Test that header file is self-contained.
#include <boost/asio/ip/udp.hpp>
-#include <boost/bind.hpp>
#include <cstring>
#include <boost/asio/io_service.hpp>
-#include <boost/asio/placeholders.hpp>
#include "../unit_test.hpp"
#include "../archetypes/gettable_socket_option.hpp"
+#include "../archetypes/async_result.hpp"
#include "../archetypes/io_control_command.hpp"
#include "../archetypes/settable_socket_option.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
//------------------------------------------------------------------------------
// ip_udp_socket_compile test
@@ -64,6 +69,7 @@ void test()
archetypes::gettable_socket_option<int> gettable_socket_option2;
archetypes::gettable_socket_option<double> gettable_socket_option3;
archetypes::io_control_command io_control_command;
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
// basic_datagram_socket constructors.
@@ -73,8 +79,10 @@ void test()
ip::udp::socket socket3(ios, ip::udp::v6());
ip::udp::socket socket4(ios, ip::udp::endpoint(ip::udp::v4(), 0));
ip::udp::socket socket5(ios, ip::udp::endpoint(ip::udp::v6(), 0));
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
int native_socket1 = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
ip::udp::socket socket6(ios, ip::udp::v4(), native_socket1);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
#if defined(BOOST_ASIO_HAS_MOVE)
ip::udp::socket socket7(std::move(socket6));
@@ -107,10 +115,12 @@ void test()
socket1.open(ip::udp::v4(), ec);
socket1.open(ip::udp::v6(), ec);
+#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
int native_socket2 = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
socket1.assign(ip::udp::v4(), native_socket2);
int native_socket3 = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
socket1.assign(ip::udp::v4(), native_socket3, ec);
+#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
bool is_open = socket1.is_open();
(void)is_open;
@@ -152,6 +162,10 @@ void test()
&connect_handler);
socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0),
&connect_handler);
+ int i1 = socket1.async_connect(ip::udp::endpoint(ip::udp::v4(), 0), lazy);
+ (void)i1;
+ int i2 = socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0), lazy);
+ (void)i2;
socket1.set_option(settable_socket_option1);
socket1.set_option(settable_socket_option1, ec);
@@ -207,6 +221,18 @@ void test()
socket1.async_send(buffer(mutable_char_buffer), in_flags, &send_handler);
socket1.async_send(buffer(const_char_buffer), in_flags, &send_handler);
socket1.async_send(null_buffers(), in_flags, &send_handler);
+ int i3 = socket1.async_send(buffer(mutable_char_buffer), lazy);
+ (void)i3;
+ int i4 = socket1.async_send(buffer(const_char_buffer), lazy);
+ (void)i4;
+ int i5 = socket1.async_send(null_buffers(), lazy);
+ (void)i5;
+ int i6 = socket1.async_send(buffer(mutable_char_buffer), in_flags, lazy);
+ (void)i6;
+ int i7 = socket1.async_send(buffer(const_char_buffer), in_flags, lazy);
+ (void)i7;
+ int i8 = socket1.async_send(null_buffers(), in_flags, lazy);
+ (void)i8;
socket1.send_to(buffer(mutable_char_buffer),
ip::udp::endpoint(ip::udp::v4(), 0));
@@ -269,6 +295,42 @@ void test()
ip::udp::endpoint(ip::udp::v4(), 0), in_flags, &send_handler);
socket1.async_send_to(null_buffers(),
ip::udp::endpoint(ip::udp::v6(), 0), in_flags, &send_handler);
+ int i9 = socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::udp::endpoint(ip::udp::v4(), 0), lazy);
+ (void)i9;
+ int i10 = socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::udp::endpoint(ip::udp::v6(), 0), lazy);
+ (void)i10;
+ int i11 = socket1.async_send_to(buffer(const_char_buffer),
+ ip::udp::endpoint(ip::udp::v4(), 0), lazy);
+ (void)i11;
+ int i12 = socket1.async_send_to(buffer(const_char_buffer),
+ ip::udp::endpoint(ip::udp::v6(), 0), lazy);
+ (void)i12;
+ int i13 = socket1.async_send_to(null_buffers(),
+ ip::udp::endpoint(ip::udp::v4(), 0), lazy);
+ (void)i13;
+ int i14 = socket1.async_send_to(null_buffers(),
+ ip::udp::endpoint(ip::udp::v6(), 0), lazy);
+ (void)i14;
+ int i15 = socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::udp::endpoint(ip::udp::v4(), 0), in_flags, lazy);
+ (void)i15;
+ int i16 = socket1.async_send_to(buffer(mutable_char_buffer),
+ ip::udp::endpoint(ip::udp::v6(), 0), in_flags, lazy);
+ (void)i16;
+ int i17 = socket1.async_send_to(buffer(const_char_buffer),
+ ip::udp::endpoint(ip::udp::v4(), 0), in_flags, lazy);
+ (void)i17;
+ int i18 = socket1.async_send_to(buffer(const_char_buffer),
+ ip::udp::endpoint(ip::udp::v6(), 0), in_flags, lazy);
+ (void)i18;
+ int i19 = socket1.async_send_to(null_buffers(),
+ ip::udp::endpoint(ip::udp::v4(), 0), in_flags, lazy);
+ (void)i19;
+ int i20 = socket1.async_send_to(null_buffers(),
+ ip::udp::endpoint(ip::udp::v6(), 0), in_flags, lazy);
+ (void)i20;
socket1.receive(buffer(mutable_char_buffer));
socket1.receive(null_buffers());
@@ -282,6 +344,15 @@ void test()
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
&receive_handler);
socket1.async_receive(null_buffers(), in_flags, &receive_handler);
+ int i21 = socket1.async_receive(buffer(mutable_char_buffer), lazy);
+ (void)i21;
+ int i22 = socket1.async_receive(null_buffers(), lazy);
+ (void)i22;
+ int i23 = socket1.async_receive(buffer(mutable_char_buffer),
+ in_flags, lazy);
+ (void)i23;
+ int i24 = socket1.async_receive(null_buffers(), in_flags, lazy);
+ (void)i24;
ip::udp::endpoint endpoint;
socket1.receive_from(buffer(mutable_char_buffer), endpoint);
@@ -299,6 +370,18 @@ void test()
endpoint, in_flags, &receive_handler);
socket1.async_receive_from(null_buffers(),
endpoint, in_flags, &receive_handler);
+ int i25 = socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, lazy);
+ (void)i25;
+ int i26 = socket1.async_receive_from(null_buffers(),
+ endpoint, lazy);
+ (void)i26;
+ int i27 = socket1.async_receive_from(buffer(mutable_char_buffer),
+ endpoint, in_flags, lazy);
+ (void)i27;
+ int i28 = socket1.async_receive_from(null_buffers(),
+ endpoint, in_flags, lazy);
+ (void)i28;
}
catch (std::exception&)
{
@@ -318,15 +401,15 @@ namespace ip_udp_socket_runtime {
void handle_send(size_t expected_bytes_sent,
const boost::system::error_code& err, size_t bytes_sent)
{
- BOOST_CHECK(!err);
- BOOST_CHECK(expected_bytes_sent == bytes_sent);
+ BOOST_ASIO_CHECK(!err);
+ BOOST_ASIO_CHECK(expected_bytes_sent == bytes_sent);
}
void handle_recv(size_t expected_bytes_recvd,
const boost::system::error_code& err, size_t bytes_recvd)
{
- BOOST_CHECK(!err);
- BOOST_CHECK(expected_bytes_recvd == bytes_recvd);
+ BOOST_ASIO_CHECK(!err);
+ BOOST_ASIO_CHECK(expected_bytes_recvd == bytes_recvd);
}
void test()
@@ -335,6 +418,14 @@ void test()
using namespace boost::asio;
namespace ip = boost::asio::ip;
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
io_service ios;
ip::udp::socket s1(ios, ip::udp::endpoint(ip::udp::v4(), 0));
@@ -352,24 +443,20 @@ void test()
size_t bytes_recvd = s1.receive_from(buffer(recv_msg, sizeof(recv_msg)),
sender_endpoint);
- BOOST_CHECK(bytes_recvd == sizeof(send_msg));
- BOOST_CHECK(memcmp(send_msg, recv_msg, sizeof(send_msg)) == 0);
+ BOOST_ASIO_CHECK(bytes_recvd == sizeof(send_msg));
+ BOOST_ASIO_CHECK(memcmp(send_msg, recv_msg, sizeof(send_msg)) == 0);
memset(recv_msg, 0, sizeof(recv_msg));
target_endpoint = sender_endpoint;
s1.async_send_to(buffer(send_msg, sizeof(send_msg)), target_endpoint,
- boost::bind(handle_send, sizeof(send_msg),
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred));
+ bindns::bind(handle_send, sizeof(send_msg), _1, _2));
s2.async_receive_from(buffer(recv_msg, sizeof(recv_msg)), sender_endpoint,
- boost::bind(handle_recv, sizeof(recv_msg),
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred));
+ bindns::bind(handle_recv, sizeof(recv_msg), _1, _2));
ios.run();
- BOOST_CHECK(memcmp(send_msg, recv_msg, sizeof(send_msg)) == 0);
+ BOOST_ASIO_CHECK(memcmp(send_msg, recv_msg, sizeof(send_msg)) == 0);
}
} // namespace ip_udp_socket_runtime
@@ -396,6 +483,7 @@ void test()
try
{
io_service ios;
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
ip::udp::resolver::query q(ip::udp::v4(), "localhost", "0");
ip::udp::endpoint e(ip::address_v4::loopback(), 0);
@@ -426,8 +514,12 @@ void test()
(void)iter4;
resolver.async_resolve(q, &resolve_handler);
+ int i1 = resolver.async_resolve(q, lazy);
+ (void)i1;
resolver.async_resolve(e, &resolve_handler);
+ int i2 = resolver.async_resolve(e, lazy);
+ (void)i2;
}
catch (std::exception&)
{
@@ -438,11 +530,10 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/udp");
- test->add(BOOST_TEST_CASE(&ip_udp_socket_compile::test));
- test->add(BOOST_TEST_CASE(&ip_udp_socket_runtime::test));
- test->add(BOOST_TEST_CASE(&ip_udp_resolver_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/udp",
+ BOOST_ASIO_TEST_CASE(ip_udp_socket_compile::test)
+ BOOST_ASIO_TEST_CASE(ip_udp_socket_runtime::test)
+ BOOST_ASIO_TEST_CASE(ip_udp_resolver_compile::test)
+)
diff --git a/libs/asio/test/ip/unicast.cpp b/libs/asio/test/ip/unicast.cpp
index a5ee8b01a1..4f342c03d6 100644
--- a/libs/asio/test/ip/unicast.cpp
+++ b/libs/asio/test/ip/unicast.cpp
@@ -2,7 +2,7 @@
// unicast.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -84,78 +84,78 @@ void test()
sock_v6.bind(ep_v6, ec);
bool have_v6 = !ec;
- BOOST_CHECK(have_v4 || have_v6);
+ BOOST_ASIO_CHECK(have_v4 || have_v6);
// hops class.
if (have_v4)
{
ip::unicast::hops hops1(1);
- BOOST_CHECK(hops1.value() == 1);
+ BOOST_ASIO_CHECK(hops1.value() == 1);
sock_v4.set_option(hops1, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK(!ec);
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK(!ec);
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
ip::unicast::hops hops2;
sock_v4.get_option(hops2, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK(!ec);
- BOOST_CHECK(hops2.value() == 1);
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(hops2.value() == 1);
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
ip::unicast::hops hops3(255);
- BOOST_CHECK(hops3.value() == 255);
+ BOOST_ASIO_CHECK(hops3.value() == 255);
sock_v4.set_option(hops3, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK(!ec);
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK(!ec);
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
ip::unicast::hops hops4;
sock_v4.get_option(hops4, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK(!ec);
- BOOST_CHECK(hops4.value() == 255);
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(hops4.value() == 255);
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
}
if (have_v6)
{
ip::unicast::hops hops1(1);
- BOOST_CHECK(hops1.value() == 1);
+ BOOST_ASIO_CHECK(hops1.value() == 1);
sock_v6.set_option(hops1, ec);
- BOOST_CHECK(!ec);
+ BOOST_ASIO_CHECK(!ec);
ip::unicast::hops hops2;
sock_v6.get_option(hops2, ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(hops2.value() == 1);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(hops2.value() == 1);
ip::unicast::hops hops3(255);
- BOOST_CHECK(hops3.value() == 255);
+ BOOST_ASIO_CHECK(hops3.value() == 255);
sock_v6.set_option(hops3, ec);
- BOOST_CHECK(!ec);
+ BOOST_ASIO_CHECK(!ec);
ip::unicast::hops hops4;
sock_v6.get_option(hops4, ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(hops4.value() == 255);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(hops4.value() == 255);
}
}
@@ -163,10 +163,9 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/unicast");
- test->add(BOOST_TEST_CASE(&ip_unicast_compile::test));
- test->add(BOOST_TEST_CASE(&ip_unicast_runtime::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/unicast",
+ BOOST_ASIO_TEST_CASE(ip_unicast_compile::test)
+ BOOST_ASIO_TEST_CASE(ip_unicast_runtime::test)
+)
diff --git a/libs/asio/test/ip/v6_only.cpp b/libs/asio/test/ip/v6_only.cpp
index 5ea62f18de..3b94873945 100644
--- a/libs/asio/test/ip/v6_only.cpp
+++ b/libs/asio/test/ip/v6_only.cpp
@@ -2,7 +2,7 @@
// v6_only.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -87,38 +87,38 @@ void test()
{
ip::v6_only v6_only1;
acceptor_v6.get_option(v6_only1, ec);
- BOOST_CHECK(!ec);
+ BOOST_ASIO_CHECK(!ec);
bool have_dual_stack = !v6_only1.value();
if (have_dual_stack)
{
ip::v6_only v6_only2(false);
- BOOST_CHECK(!v6_only2.value());
- BOOST_CHECK(!static_cast<bool>(v6_only2));
- BOOST_CHECK(!v6_only2);
+ BOOST_ASIO_CHECK(!v6_only2.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(v6_only2));
+ BOOST_ASIO_CHECK(!v6_only2);
acceptor_v6.set_option(v6_only2, ec);
- BOOST_CHECK(!ec);
+ BOOST_ASIO_CHECK(!ec);
ip::v6_only v6_only3;
acceptor_v6.get_option(v6_only3, ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(!v6_only3.value());
- BOOST_CHECK(!static_cast<bool>(v6_only3));
- BOOST_CHECK(!v6_only3);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(!v6_only3.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(v6_only3));
+ BOOST_ASIO_CHECK(!v6_only3);
ip::v6_only v6_only4(true);
- BOOST_CHECK(v6_only4.value());
- BOOST_CHECK(static_cast<bool>(v6_only4));
- BOOST_CHECK(!!v6_only4);
+ BOOST_ASIO_CHECK(v6_only4.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(v6_only4));
+ BOOST_ASIO_CHECK(!!v6_only4);
acceptor_v6.set_option(v6_only4, ec);
- BOOST_CHECK(!ec);
+ BOOST_ASIO_CHECK(!ec);
ip::v6_only v6_only5;
acceptor_v6.get_option(v6_only5, ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(v6_only5.value());
- BOOST_CHECK(static_cast<bool>(v6_only5));
- BOOST_CHECK(!!v6_only5);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(v6_only5.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(v6_only5));
+ BOOST_ASIO_CHECK(!!v6_only5);
}
}
}
@@ -127,10 +127,9 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ip/v6_only");
- test->add(BOOST_TEST_CASE(&ip_v6_only_compile::test));
- test->add(BOOST_TEST_CASE(&ip_v6_only_runtime::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ip/v6_only",
+ BOOST_ASIO_TEST_CASE(ip_v6_only_compile::test)
+ BOOST_ASIO_TEST_CASE(ip_v6_only_runtime::test)
+)
diff --git a/libs/asio/test/is_read_buffered.cpp b/libs/asio/test/is_read_buffered.cpp
index e54c81b41a..9cc2316d78 100644
--- a/libs/asio/test/is_read_buffered.cpp
+++ b/libs/asio/test/is_read_buffered.cpp
@@ -2,7 +2,7 @@
// is_read_buffered.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,8 +16,6 @@
// Test that header file is self-contained.
#include <boost/asio/is_read_buffered.hpp>
-#include <boost/bind.hpp>
-#include <boost/noncopyable.hpp>
#include <boost/asio/buffered_read_stream.hpp>
#include <boost/asio/buffered_write_stream.hpp>
#include <boost/asio/io_service.hpp>
@@ -27,7 +25,6 @@
using namespace std; // For memcmp, memcpy and memset.
class test_stream
- : private boost::noncopyable
{
public:
typedef boost::asio::io_service io_service_type;
@@ -95,35 +92,34 @@ private:
void is_read_buffered_test()
{
- BOOST_CHECK(!boost::asio::is_read_buffered<
+ BOOST_ASIO_CHECK(!boost::asio::is_read_buffered<
boost::asio::ip::tcp::socket>::value);
- BOOST_CHECK(!!boost::asio::is_read_buffered<
+ BOOST_ASIO_CHECK(!!boost::asio::is_read_buffered<
boost::asio::buffered_read_stream<
boost::asio::ip::tcp::socket> >::value);
- BOOST_CHECK(!boost::asio::is_read_buffered<
+ BOOST_ASIO_CHECK(!boost::asio::is_read_buffered<
boost::asio::buffered_write_stream<
boost::asio::ip::tcp::socket> >::value);
- BOOST_CHECK(!!boost::asio::is_read_buffered<
+ BOOST_ASIO_CHECK(!!boost::asio::is_read_buffered<
boost::asio::buffered_stream<boost::asio::ip::tcp::socket> >::value);
- BOOST_CHECK(!boost::asio::is_read_buffered<test_stream>::value);
+ BOOST_ASIO_CHECK(!boost::asio::is_read_buffered<test_stream>::value);
- BOOST_CHECK(!!boost::asio::is_read_buffered<
+ BOOST_ASIO_CHECK(!!boost::asio::is_read_buffered<
boost::asio::buffered_read_stream<test_stream> >::value);
- BOOST_CHECK(!boost::asio::is_read_buffered<
+ BOOST_ASIO_CHECK(!boost::asio::is_read_buffered<
boost::asio::buffered_write_stream<test_stream> >::value);
- BOOST_CHECK(!!boost::asio::is_read_buffered<
+ BOOST_ASIO_CHECK(!!boost::asio::is_read_buffered<
boost::asio::buffered_stream<test_stream> >::value);
}
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("is_read_buffered");
- test->add(BOOST_TEST_CASE(&is_read_buffered_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "is_read_buffered",
+ BOOST_ASIO_TEST_CASE(is_read_buffered_test)
+)
diff --git a/libs/asio/test/is_write_buffered.cpp b/libs/asio/test/is_write_buffered.cpp
index 2ed9b6732c..c5b6dfdc41 100644
--- a/libs/asio/test/is_write_buffered.cpp
+++ b/libs/asio/test/is_write_buffered.cpp
@@ -2,7 +2,7 @@
// is_write_buffered.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,8 +16,6 @@
// Test that header file is self-contained.
#include <boost/asio/is_write_buffered.hpp>
-#include <boost/bind.hpp>
-#include <boost/noncopyable.hpp>
#include <boost/asio/buffered_read_stream.hpp>
#include <boost/asio/buffered_write_stream.hpp>
#include <boost/asio/io_service.hpp>
@@ -27,7 +25,6 @@
using namespace std; // For memcmp, memcpy and memset.
class test_stream
- : private boost::noncopyable
{
public:
typedef boost::asio::io_service io_service_type;
@@ -95,35 +92,34 @@ private:
void is_write_buffered_test()
{
- BOOST_CHECK(!boost::asio::is_write_buffered<
+ BOOST_ASIO_CHECK(!boost::asio::is_write_buffered<
boost::asio::ip::tcp::socket>::value);
- BOOST_CHECK(!boost::asio::is_write_buffered<
+ BOOST_ASIO_CHECK(!boost::asio::is_write_buffered<
boost::asio::buffered_read_stream<
boost::asio::ip::tcp::socket> >::value);
- BOOST_CHECK(!!boost::asio::is_write_buffered<
+ BOOST_ASIO_CHECK(!!boost::asio::is_write_buffered<
boost::asio::buffered_write_stream<
boost::asio::ip::tcp::socket> >::value);
- BOOST_CHECK(!!boost::asio::is_write_buffered<
+ BOOST_ASIO_CHECK(!!boost::asio::is_write_buffered<
boost::asio::buffered_stream<boost::asio::ip::tcp::socket> >::value);
- BOOST_CHECK(!boost::asio::is_write_buffered<test_stream>::value);
+ BOOST_ASIO_CHECK(!boost::asio::is_write_buffered<test_stream>::value);
- BOOST_CHECK(!boost::asio::is_write_buffered<
+ BOOST_ASIO_CHECK(!boost::asio::is_write_buffered<
boost::asio::buffered_read_stream<test_stream> >::value);
- BOOST_CHECK(!!boost::asio::is_write_buffered<
+ BOOST_ASIO_CHECK(!!boost::asio::is_write_buffered<
boost::asio::buffered_write_stream<test_stream> >::value);
- BOOST_CHECK(!!boost::asio::is_write_buffered<
+ BOOST_ASIO_CHECK(!!boost::asio::is_write_buffered<
boost::asio::buffered_stream<test_stream> >::value);
}
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("is_write_buffered");
- test->add(BOOST_TEST_CASE(&is_write_buffered_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "is_write_buffered",
+ BOOST_ASIO_TEST_CASE(is_write_buffered_test)
+)
diff --git a/libs/asio/test/latency/Jamfile.v2 b/libs/asio/test/latency/Jamfile.v2
index db79f624d7..fdab471a6b 100644
--- a/libs/asio/test/latency/Jamfile.v2
+++ b/libs/asio/test/latency/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/latency/allocator.hpp b/libs/asio/test/latency/allocator.hpp
index 46db761112..80d8fe8829 100644
--- a/libs/asio/test/latency/allocator.hpp
+++ b/libs/asio/test/latency/allocator.hpp
@@ -2,7 +2,7 @@
// allocator.hpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/latency/coroutine.hpp b/libs/asio/test/latency/coroutine.hpp
index 777d7ca6b5..193e22e30b 100644
--- a/libs/asio/test/latency/coroutine.hpp
+++ b/libs/asio/test/latency/coroutine.hpp
@@ -2,7 +2,7 @@
// coroutine.hpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/latency/high_res_clock.hpp b/libs/asio/test/latency/high_res_clock.hpp
index bebf444f6c..e0bc59ae9c 100644
--- a/libs/asio/test/latency/high_res_clock.hpp
+++ b/libs/asio/test/latency/high_res_clock.hpp
@@ -2,7 +2,7 @@
// high_res_clock.hpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -14,7 +14,7 @@
#include <boost/config.hpp>
#include <boost/cstdint.hpp>
-#if defined(BOOST_WINDOWS)
+#if defined(BOOST_ASIO_WINDOWS)
inline boost::uint64_t high_res_clock()
{
diff --git a/libs/asio/test/latency/tcp_client.cpp b/libs/asio/test/latency/tcp_client.cpp
index a17bde1cb7..ac03d3f870 100644
--- a/libs/asio/test/latency/tcp_client.cpp
+++ b/libs/asio/test/latency/tcp_client.cpp
@@ -2,7 +2,7 @@
// tcp_client.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/latency/tcp_server.cpp b/libs/asio/test/latency/tcp_server.cpp
index bde342c7b9..0313e129eb 100644
--- a/libs/asio/test/latency/tcp_server.cpp
+++ b/libs/asio/test/latency/tcp_server.cpp
@@ -2,7 +2,7 @@
// tcp_server.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/latency/udp_client.cpp b/libs/asio/test/latency/udp_client.cpp
index 1424b5cf30..e644677032 100644
--- a/libs/asio/test/latency/udp_client.cpp
+++ b/libs/asio/test/latency/udp_client.cpp
@@ -2,7 +2,7 @@
// udp_client.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/latency/udp_server.cpp b/libs/asio/test/latency/udp_server.cpp
index 7a39cae05f..61af6705c2 100644
--- a/libs/asio/test/latency/udp_server.cpp
+++ b/libs/asio/test/latency/udp_server.cpp
@@ -2,7 +2,7 @@
// udp_server.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/latency/unyield.hpp b/libs/asio/test/latency/unyield.hpp
index 2af26786de..0be57acc9a 100644
--- a/libs/asio/test/latency/unyield.hpp
+++ b/libs/asio/test/latency/unyield.hpp
@@ -2,7 +2,7 @@
// unyield.hpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/latency/yield.hpp b/libs/asio/test/latency/yield.hpp
index 3290efc781..71749e26c9 100644
--- a/libs/asio/test/latency/yield.hpp
+++ b/libs/asio/test/latency/yield.hpp
@@ -2,7 +2,7 @@
// yield.hpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
diff --git a/libs/asio/test/local/basic_endpoint.cpp b/libs/asio/test/local/basic_endpoint.cpp
index 1918e1b11b..f43d784c35 100644
--- a/libs/asio/test/local/basic_endpoint.cpp
+++ b/libs/asio/test/local/basic_endpoint.cpp
@@ -2,7 +2,7 @@
// basic_endpoint.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("local/basic_endpoint");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "local/basic_endpoint",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/local/connect_pair.cpp b/libs/asio/test/local/connect_pair.cpp
index 0607dee072..3c4636c87b 100644
--- a/libs/asio/test/local/connect_pair.cpp
+++ b/libs/asio/test/local/connect_pair.cpp
@@ -2,7 +2,7 @@
// connect_pair.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -70,9 +70,8 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("local/connect_pair");
- test->add(BOOST_TEST_CASE(&local_connect_pair_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "local/connect_pair",
+ BOOST_ASIO_TEST_CASE(local_connect_pair_compile::test)
+)
diff --git a/libs/asio/test/local/datagram_protocol.cpp b/libs/asio/test/local/datagram_protocol.cpp
index e4f2373775..67f9ab9b14 100644
--- a/libs/asio/test/local/datagram_protocol.cpp
+++ b/libs/asio/test/local/datagram_protocol.cpp
@@ -2,7 +2,7 @@
// datagram_protocol.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,7 +16,6 @@
// Test that header file is self-contained.
#include <boost/asio/local/datagram_protocol.hpp>
-#include <boost/bind.hpp>
#include <cstring>
#include <boost/asio/io_service.hpp>
#include "../unit_test.hpp"
@@ -225,9 +224,8 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("local/datagram_protocol");
- test->add(BOOST_TEST_CASE(&local_datagram_protocol_socket_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "local/datagram_protocol",
+ BOOST_ASIO_TEST_CASE(local_datagram_protocol_socket_compile::test)
+)
diff --git a/libs/asio/test/local/stream_protocol.cpp b/libs/asio/test/local/stream_protocol.cpp
index 3929eb5f9f..5b05dc5320 100644
--- a/libs/asio/test/local/stream_protocol.cpp
+++ b/libs/asio/test/local/stream_protocol.cpp
@@ -2,7 +2,7 @@
// stream_protocol.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,7 +16,6 @@
// Test that header file is self-contained.
#include <boost/asio/local/stream_protocol.hpp>
-#include <boost/bind.hpp>
#include <cstring>
#include <boost/asio/io_service.hpp>
#include "../unit_test.hpp"
@@ -202,9 +201,8 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("local/stream_protocol");
- test->add(BOOST_TEST_CASE(&local_stream_protocol_socket_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "local/stream_protocol",
+ BOOST_ASIO_TEST_CASE(local_stream_protocol_socket_compile::test)
+)
diff --git a/libs/asio/test/placeholders.cpp b/libs/asio/test/placeholders.cpp
index 26809cdaa4..cb1c45319e 100644
--- a/libs/asio/test/placeholders.cpp
+++ b/libs/asio/test/placeholders.cpp
@@ -2,7 +2,7 @@
// placeholders.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("placeholders");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "placeholders",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/posix/basic_descriptor.cpp b/libs/asio/test/posix/basic_descriptor.cpp
index 5211984933..2ebaba4be5 100644
--- a/libs/asio/test/posix/basic_descriptor.cpp
+++ b/libs/asio/test/posix/basic_descriptor.cpp
@@ -2,7 +2,7 @@
// basic_descriptor.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("posix/basic_descriptor");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "posix/basic_descriptor",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/posix/basic_stream_descriptor.cpp b/libs/asio/test/posix/basic_stream_descriptor.cpp
index 9134778756..081b835720 100644
--- a/libs/asio/test/posix/basic_stream_descriptor.cpp
+++ b/libs/asio/test/posix/basic_stream_descriptor.cpp
@@ -2,7 +2,7 @@
// basic_stream_descriptor.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("posix/basic_stream_descriptor");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "posix/basic_stream_descriptor",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/posix/descriptor_base.cpp b/libs/asio/test/posix/descriptor_base.cpp
index 1605d5b9be..5b493b5415 100644
--- a/libs/asio/test/posix/descriptor_base.cpp
+++ b/libs/asio/test/posix/descriptor_base.cpp
@@ -2,7 +2,7 @@
// descriptor_base.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("posix/descriptor_base");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "posix/descriptor_base",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/posix/stream_descriptor.cpp b/libs/asio/test/posix/stream_descriptor.cpp
index c3ad7d38df..0dec98ac36 100644
--- a/libs/asio/test/posix/stream_descriptor.cpp
+++ b/libs/asio/test/posix/stream_descriptor.cpp
@@ -2,7 +2,7 @@
// stream_descriptor.cpp
// ~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -17,6 +17,7 @@
#include <boost/asio/posix/stream_descriptor.hpp>
#include <boost/asio/io_service.hpp>
+#include "../archetypes/async_result.hpp"
#include "../unit_test.hpp"
//------------------------------------------------------------------------------
@@ -49,6 +50,7 @@ void test()
char mutable_char_buffer[128] = "";
const char const_char_buffer[128] = "";
posix::descriptor_base::bytes_readable io_control_command;
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
// basic_stream_descriptor constructors.
@@ -136,6 +138,12 @@ void test()
write_some_handler);
descriptor1.async_write_some(null_buffers(),
write_some_handler);
+ int i1 = descriptor1.async_write_some(buffer(mutable_char_buffer), lazy);
+ (void)i1;
+ int i2 = descriptor1.async_write_some(buffer(const_char_buffer), lazy);
+ (void)i2;
+ int i3 = descriptor1.async_write_some(null_buffers(), lazy);
+ (void)i3;
descriptor1.read_some(buffer(mutable_char_buffer));
descriptor1.read_some(buffer(mutable_char_buffer), ec);
@@ -143,6 +151,10 @@ void test()
descriptor1.async_read_some(buffer(mutable_char_buffer), read_some_handler);
descriptor1.async_read_some(null_buffers(), read_some_handler);
+ int i4 = descriptor1.async_read_some(buffer(mutable_char_buffer), lazy);
+ (void)i4;
+ int i5 = descriptor1.async_read_some(null_buffers(), lazy);
+ (void)i5;
}
catch (std::exception&)
{
@@ -153,9 +165,9 @@ void test()
} // namespace posix_stream_descriptor_compile
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("posix/stream_descriptor");
- test->add(BOOST_TEST_CASE(&posix_stream_descriptor_compile::test));
- return test;
-}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "posix/stream_descriptor",
+ BOOST_ASIO_TEST_CASE(posix_stream_descriptor_compile::test)
+)
diff --git a/libs/asio/test/posix/stream_descriptor_service.cpp b/libs/asio/test/posix/stream_descriptor_service.cpp
index 0a864cb658..e325e1dddc 100644
--- a/libs/asio/test/posix/stream_descriptor_service.cpp
+++ b/libs/asio/test/posix/stream_descriptor_service.cpp
@@ -2,7 +2,7 @@
// stream_descriptor_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("posix/stream_descriptor_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "posix/stream_descriptor_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/raw_socket_service.cpp b/libs/asio/test/raw_socket_service.cpp
index 6740632909..53b06e35b7 100644
--- a/libs/asio/test/raw_socket_service.cpp
+++ b/libs/asio/test/raw_socket_service.cpp
@@ -2,7 +2,7 @@
// raw_socket_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("raw_socket_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "raw_socket_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/read.cpp b/libs/asio/test/read.cpp
index 6bc57ff8e2..248e4f6f4b 100644
--- a/libs/asio/test/read.cpp
+++ b/libs/asio/test/read.cpp
@@ -2,7 +2,7 @@
// read.cpp
// ~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,23 +16,30 @@
// Test that header file is self-contained.
#include <boost/asio/read.hpp>
-#if defined(BOOST_ASIO_HAS_STD_ARRAY)
-# include <array>
-#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
-#include <boost/array.hpp>
-#include <boost/bind.hpp>
-#include <boost/noncopyable.hpp>
#include <cstring>
#include <vector>
+#include "archetypes/async_result.hpp"
#include <boost/asio/io_service.hpp>
-#include <boost/asio/placeholders.hpp>
#include <boost/asio/streambuf.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+#include <boost/array.hpp>
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+#if defined(BOOST_ASIO_HAS_STD_ARRAY)
+# include <array>
+#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
+
using namespace std; // For memcmp, memcpy and memset.
class test_stream
- : private boost::noncopyable
{
public:
typedef boost::asio::io_service io_service_type;
@@ -52,7 +59,7 @@ public:
void reset(const void* data, size_t length)
{
- BOOST_CHECK(length <= max_length);
+ BOOST_ASIO_CHECK(length <= max_length);
memcpy(data_, data, length);
length_ = length;
@@ -133,7 +140,7 @@ void test_2_arg_zero_buffers_read()
std::vector<boost::asio::mutable_buffer> buffers;
size_t bytes_transferred = boost::asio::read(s, buffers);
- BOOST_CHECK(bytes_transferred == 0);
+ BOOST_ASIO_CHECK(bytes_transferred == 0);
}
void test_2_arg_mutable_buffers_1_read()
@@ -147,22 +154,22 @@ void test_2_arg_mutable_buffers_1_read()
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
size_t bytes_transferred = boost::asio::read(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
}
void test_2_arg_vector_buffers_read()
@@ -177,22 +184,22 @@ void test_2_arg_vector_buffers_read()
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
size_t bytes_transferred = boost::asio::read(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
}
void test_2_arg_streambuf_read()
@@ -204,25 +211,25 @@ void test_2_arg_streambuf_read()
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
size_t bytes_transferred = boost::asio::read(s, sb);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
}
void test_3_arg_nothrow_zero_buffers_read()
@@ -233,8 +240,8 @@ void test_3_arg_nothrow_zero_buffers_read()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read(s, buffers, error);
- BOOST_CHECK(bytes_transferred == 0);
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 0);
+ BOOST_ASIO_CHECK(!error);
}
void test_3_arg_nothrow_mutable_buffers_1_read()
@@ -249,25 +256,25 @@ void test_3_arg_nothrow_mutable_buffers_1_read()
memset(read_buf, 0, sizeof(read_buf));
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_3_arg_nothrow_vector_buffers_read()
@@ -283,25 +290,25 @@ void test_3_arg_nothrow_vector_buffers_read()
memset(read_buf, 0, sizeof(read_buf));
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_3_arg_nothrow_streambuf_read()
@@ -314,28 +321,28 @@ void test_3_arg_nothrow_streambuf_read()
sb.consume(sb.size());
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read(s, sb, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
bool old_style_transfer_all(const boost::system::error_code& ec,
@@ -362,202 +369,202 @@ void test_3_arg_mutable_buffers_1_read()
memset(read_buf, 0, sizeof(read_buf));
size_t bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
}
void test_3_arg_vector_buffers_read()
@@ -573,202 +580,202 @@ void test_3_arg_vector_buffers_read()
memset(read_buf, 0, sizeof(read_buf));
size_t bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
}
void test_3_arg_streambuf_read()
@@ -781,229 +788,229 @@ void test_3_arg_streambuf_read()
sb.consume(sb.size());
size_t bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(sb.size() == 50);
- BOOST_CHECK(s.check_buffers(sb.data(), 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(sb.size() == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 50));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
}
void test_4_arg_mutable_buffers_1_read()
@@ -1019,9 +1026,9 @@ void test_4_arg_mutable_buffers_1_read()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1029,9 +1036,9 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1039,18 +1046,18 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1058,9 +1065,9 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1068,18 +1075,18 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1087,9 +1094,9 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1097,18 +1104,18 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1116,9 +1123,9 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1126,18 +1133,18 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1145,9 +1152,9 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1155,18 +1162,18 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1174,9 +1181,9 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1184,18 +1191,18 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1203,9 +1210,9 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1213,17 +1220,17 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1231,9 +1238,9 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1241,34 +1248,34 @@ void test_4_arg_mutable_buffers_1_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_4_arg_vector_buffers_read()
@@ -1285,9 +1292,9 @@ void test_4_arg_vector_buffers_read()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1295,9 +1302,9 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1305,18 +1312,18 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1324,9 +1331,9 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1334,18 +1341,18 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1353,9 +1360,9 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1363,18 +1370,18 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1382,9 +1389,9 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1392,18 +1399,18 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1411,9 +1418,9 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1421,18 +1428,18 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1440,9 +1447,9 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1450,18 +1457,18 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1469,9 +1476,9 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1479,17 +1486,17 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1497,9 +1504,9 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1507,34 +1514,34 @@ void test_4_arg_vector_buffers_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_4_arg_streambuf_read()
@@ -1548,10 +1555,10 @@ void test_4_arg_streambuf_read()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1559,10 +1566,10 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1570,20 +1577,20 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1591,10 +1598,10 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1602,20 +1609,20 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1623,10 +1630,10 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1634,20 +1641,20 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1655,10 +1662,10 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1666,20 +1673,20 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(sb.size() == 50);
- BOOST_CHECK(s.check_buffers(sb.data(), 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(sb.size() == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 50));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1687,10 +1694,10 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1698,20 +1705,20 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1719,10 +1726,10 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1730,20 +1737,20 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1751,10 +1758,10 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1762,19 +1769,19 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1782,10 +1789,10 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1793,50 +1800,58 @@ void test_4_arg_streambuf_read()
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read(s, sb, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read(s, sb, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
void async_read_handler(const boost::system::error_code& e,
size_t bytes_transferred, size_t expected_bytes_transferred, bool* called)
{
*called = true;
- BOOST_CHECK(!e);
- BOOST_CHECK(bytes_transferred == expected_bytes_transferred);
+ BOOST_ASIO_CHECK(!e);
+ BOOST_ASIO_CHECK(bytes_transferred == expected_bytes_transferred);
}
void test_3_arg_mutable_buffers_1_async_read()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
char read_buf[sizeof(read_data)];
@@ -1847,46 +1862,57 @@ void test_3_arg_mutable_buffers_1_async_read()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read(s, buffers, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
}
void test_3_arg_boost_array_buffers_async_read()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
boost::asio::io_service ios;
test_stream s(ios);
char read_buf[sizeof(read_data)];
@@ -1898,46 +1924,57 @@ void test_3_arg_boost_array_buffers_async_read()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read(s, buffers, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
}
void test_3_arg_std_array_buffers_async_read()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
#if defined(BOOST_ASIO_HAS_STD_ARRAY)
boost::asio::io_service ios;
test_stream s(ios);
@@ -1950,47 +1987,57 @@ void test_3_arg_std_array_buffers_async_read()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read(s, buffers, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
}
void test_3_arg_vector_buffers_async_read()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
char read_buf[sizeof(read_data)];
@@ -2002,46 +2049,56 @@ void test_3_arg_vector_buffers_async_read()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read(s, buffers, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
}
void test_3_arg_streambuf_async_read()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
boost::asio::streambuf sb(sizeof(read_data));
@@ -2050,49 +2107,60 @@ void test_3_arg_streambuf_async_read()
sb.consume(sb.size());
bool called = false;
boost::asio::async_read(s, sb,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ sb.consume(sb.size());
+ int i = boost::asio::async_read(s, sb, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
}
void test_4_arg_mutable_buffers_1_async_read()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
char read_buf[sizeof(read_data)];
@@ -2103,374 +2171,338 @@ void test_4_arg_mutable_buffers_1_async_read()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read(s, buffers,
+ short_transfer, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
}
void test_4_arg_boost_array_buffers_async_read()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
boost::asio::io_service ios;
test_stream s(ios);
char read_buf[sizeof(read_data)];
@@ -2482,374 +2514,338 @@ void test_4_arg_boost_array_buffers_async_read()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read(s, buffers,
+ short_transfer, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
}
void test_4_arg_std_array_buffers_async_read()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
#if defined(BOOST_ASIO_HAS_STD_ARRAY)
boost::asio::io_service ios;
test_stream s(ios);
@@ -2862,375 +2858,338 @@ void test_4_arg_std_array_buffers_async_read()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read(s, buffers,
+ short_transfer, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
}
void test_4_arg_vector_buffers_async_read()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
char read_buf[sizeof(read_data)];
@@ -3242,374 +3201,337 @@ void test_4_arg_vector_buffers_async_read()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read(s, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read(s, buffers,
+ short_transfer, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
}
void test_4_arg_streambuf_async_read()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
boost::asio::streambuf sb(sizeof(read_data));
@@ -3618,425 +3540,380 @@ void test_4_arg_streambuf_async_read()
sb.consume(sb.size());
bool called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 50);
- BOOST_CHECK(s.check_buffers(sb.data(), 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 50));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 1));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), 42));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read(s, sb, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
-}
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("read");
- test->add(BOOST_TEST_CASE(&test_2_arg_zero_buffers_read));
- test->add(BOOST_TEST_CASE(&test_2_arg_mutable_buffers_1_read));
- test->add(BOOST_TEST_CASE(&test_2_arg_vector_buffers_read));
- test->add(BOOST_TEST_CASE(&test_2_arg_streambuf_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_nothrow_zero_buffers_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_nothrow_mutable_buffers_1_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_nothrow_vector_buffers_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_nothrow_streambuf_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_mutable_buffers_1_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_vector_buffers_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_streambuf_read));
- test->add(BOOST_TEST_CASE(&test_4_arg_mutable_buffers_1_read));
- test->add(BOOST_TEST_CASE(&test_4_arg_vector_buffers_read));
- test->add(BOOST_TEST_CASE(&test_4_arg_streambuf_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_mutable_buffers_1_async_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_boost_array_buffers_async_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_std_array_buffers_async_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_vector_buffers_async_read));
- test->add(BOOST_TEST_CASE(&test_3_arg_streambuf_async_read));
- test->add(BOOST_TEST_CASE(&test_4_arg_mutable_buffers_1_async_read));
- test->add(BOOST_TEST_CASE(&test_4_arg_vector_buffers_async_read));
- test->add(BOOST_TEST_CASE(&test_4_arg_boost_array_buffers_async_read));
- test->add(BOOST_TEST_CASE(&test_4_arg_std_array_buffers_async_read));
- test->add(BOOST_TEST_CASE(&test_4_arg_streambuf_async_read));
- return test;
+ s.reset(read_data, sizeof(read_data));
+ sb.consume(sb.size());
+ int i = boost::asio::async_read(s, sb,
+ short_transfer, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "read",
+ BOOST_ASIO_TEST_CASE(test_2_arg_zero_buffers_read)
+ BOOST_ASIO_TEST_CASE(test_2_arg_mutable_buffers_1_read)
+ BOOST_ASIO_TEST_CASE(test_2_arg_vector_buffers_read)
+ BOOST_ASIO_TEST_CASE(test_2_arg_streambuf_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_nothrow_zero_buffers_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_nothrow_mutable_buffers_1_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_nothrow_vector_buffers_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_nothrow_streambuf_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_mutable_buffers_1_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_vector_buffers_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_streambuf_read)
+ BOOST_ASIO_TEST_CASE(test_4_arg_mutable_buffers_1_read)
+ BOOST_ASIO_TEST_CASE(test_4_arg_vector_buffers_read)
+ BOOST_ASIO_TEST_CASE(test_4_arg_streambuf_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_mutable_buffers_1_async_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_boost_array_buffers_async_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_std_array_buffers_async_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_vector_buffers_async_read)
+ BOOST_ASIO_TEST_CASE(test_3_arg_streambuf_async_read)
+ BOOST_ASIO_TEST_CASE(test_4_arg_mutable_buffers_1_async_read)
+ BOOST_ASIO_TEST_CASE(test_4_arg_vector_buffers_async_read)
+ BOOST_ASIO_TEST_CASE(test_4_arg_boost_array_buffers_async_read)
+ BOOST_ASIO_TEST_CASE(test_4_arg_std_array_buffers_async_read)
+ BOOST_ASIO_TEST_CASE(test_4_arg_streambuf_async_read)
+)
diff --git a/libs/asio/test/read_at.cpp b/libs/asio/test/read_at.cpp
index 7c3e83cabd..f41acc8209 100644
--- a/libs/asio/test/read_at.cpp
+++ b/libs/asio/test/read_at.cpp
@@ -2,7 +2,7 @@
// read_at.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,22 +16,29 @@
// Test that header file is self-contained.
#include <boost/asio/read_at.hpp>
-#if defined(BOOST_ASIO_HAS_STD_ARRAY)
-# include <array>
-#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
-#include <boost/array.hpp>
-#include <boost/bind.hpp>
-#include <boost/noncopyable.hpp>
#include <cstring>
+#include "archetypes/async_result.hpp"
#include <boost/asio/io_service.hpp>
-#include <boost/asio/placeholders.hpp>
#include <boost/asio/streambuf.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+#include <boost/array.hpp>
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+#if defined(BOOST_ASIO_HAS_STD_ARRAY)
+# include <array>
+#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
+
using namespace std; // For memcmp, memcpy and memset.
class test_random_access_device
- : private boost::noncopyable
{
public:
typedef boost::asio::io_service io_service_type;
@@ -50,7 +57,7 @@ public:
void reset(const void* data, size_t length)
{
- BOOST_CHECK(length <= max_length);
+ BOOST_ASIO_CHECK(length <= max_length);
length_ = 0;
while (length_ + length < max_length)
@@ -68,7 +75,7 @@ public:
}
template <typename Const_Buffers>
- bool check_buffers(boost::uint64_t offset,
+ bool check_buffers(boost::asio::uint64_t offset,
const Const_Buffers& buffers, size_t length)
{
if (offset + length > max_length)
@@ -92,7 +99,8 @@ public:
}
template <typename Mutable_Buffers>
- size_t read_some_at(boost::uint64_t offset, const Mutable_Buffers& buffers)
+ size_t read_some_at(boost::asio::uint64_t offset,
+ const Mutable_Buffers& buffers)
{
return boost::asio::buffer_copy(buffers,
boost::asio::buffer(data_, length_) + offset,
@@ -100,7 +108,7 @@ public:
}
template <typename Mutable_Buffers>
- size_t read_some_at(boost::uint64_t offset,
+ size_t read_some_at(boost::asio::uint64_t offset,
const Mutable_Buffers& buffers, boost::system::error_code& ec)
{
ec = boost::system::error_code();
@@ -108,7 +116,7 @@ public:
}
template <typename Mutable_Buffers, typename Handler>
- void async_read_some_at(boost::uint64_t offset,
+ void async_read_some_at(boost::asio::uint64_t offset,
const Mutable_Buffers& buffers, Handler handler)
{
size_t bytes_transferred = read_some_at(offset, buffers);
@@ -138,42 +146,42 @@ void test_3_arg_mutable_buffers_1_read_at()
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
size_t bytes_transferred = boost::asio::read_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
}
void test_3_arg_vector_buffers_read_at()
@@ -188,42 +196,42 @@ void test_3_arg_vector_buffers_read_at()
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
size_t bytes_transferred = boost::asio::read_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
}
void test_3_arg_streambuf_read_at()
@@ -235,48 +243,48 @@ void test_3_arg_streambuf_read_at()
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
size_t bytes_transferred = boost::asio::read_at(s, 0, sb);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
}
void test_4_arg_nothrow_mutable_buffers_1_read_at()
@@ -291,48 +299,48 @@ void test_4_arg_nothrow_mutable_buffers_1_read_at()
memset(read_buf, 0, sizeof(read_buf));
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_4_arg_nothrow_vector_buffers_read_at()
@@ -348,48 +356,48 @@ void test_4_arg_nothrow_vector_buffers_read_at()
memset(read_buf, 0, sizeof(read_buf));
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_4_arg_nothrow_streambuf_read_at()
@@ -402,54 +410,54 @@ void test_4_arg_nothrow_streambuf_read_at()
sb.consume(sb.size());
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read_at(s, 0, sb, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
bool old_style_transfer_all(const boost::system::error_code& ec,
@@ -476,409 +484,409 @@ void test_4_arg_mutable_buffers_1_read_at()
memset(read_buf, 0, sizeof(read_buf));
size_t bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
}
void test_4_arg_vector_buffers_read_at()
@@ -894,409 +902,409 @@ void test_4_arg_vector_buffers_read_at()
memset(read_buf, 0, sizeof(read_buf));
size_t bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
}
void test_4_arg_streambuf_read_at()
@@ -1309,463 +1317,463 @@ void test_4_arg_streambuf_read_at()
sb.consume(sb.size());
size_t bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(sb.size() == 50);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(sb.size() == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 50));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(sb.size() == 50);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(sb.size() == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 50));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
}
void test_5_arg_mutable_buffers_1_read_at()
@@ -1781,17 +1789,17 @@ void test_5_arg_mutable_buffers_1_read_at()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1799,9 +1807,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1809,9 +1817,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1819,9 +1827,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1829,27 +1837,27 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1857,9 +1865,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1867,9 +1875,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1877,9 +1885,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1887,27 +1895,27 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1915,9 +1923,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1925,9 +1933,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1935,9 +1943,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1945,27 +1953,27 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1973,9 +1981,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -1983,9 +1991,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -1993,9 +2001,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2003,27 +2011,27 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2031,9 +2039,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2041,9 +2049,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2051,9 +2059,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2061,27 +2069,27 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2089,9 +2097,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2099,9 +2107,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2109,9 +2117,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2119,27 +2127,27 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2147,9 +2155,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2157,9 +2165,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2167,9 +2175,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2177,25 +2185,25 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2203,9 +2211,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2213,9 +2221,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2223,9 +2231,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2233,25 +2241,25 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2259,9 +2267,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2269,9 +2277,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2279,9 +2287,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2289,9 +2297,9 @@ void test_5_arg_mutable_buffers_1_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_5_arg_vector_buffers_read_at()
@@ -2308,17 +2316,17 @@ void test_5_arg_vector_buffers_read_at()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2326,9 +2334,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2336,9 +2344,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2346,9 +2354,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2356,27 +2364,27 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2384,9 +2392,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2394,9 +2402,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2404,9 +2412,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2414,27 +2422,27 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2442,9 +2450,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2452,9 +2460,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2462,9 +2470,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2472,27 +2480,27 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2500,9 +2508,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2510,9 +2518,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2520,9 +2528,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2530,27 +2538,27 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2558,9 +2566,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2568,9 +2576,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2578,9 +2586,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2588,27 +2596,27 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2616,9 +2624,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2626,9 +2634,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2636,9 +2644,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2646,27 +2654,27 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2674,9 +2682,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2684,9 +2692,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2694,9 +2702,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2704,25 +2712,25 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2730,9 +2738,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2740,9 +2748,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2750,9 +2758,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2760,25 +2768,25 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2786,9 +2794,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2796,9 +2804,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2806,9 +2814,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2816,9 +2824,9 @@ void test_5_arg_vector_buffers_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_5_arg_streambuf_read_at()
@@ -2832,19 +2840,19 @@ void test_5_arg_streambuf_read_at()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2852,10 +2860,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2863,10 +2871,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2874,10 +2882,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2885,30 +2893,30 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2916,10 +2924,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2927,10 +2935,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2938,10 +2946,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -2949,30 +2957,30 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2980,10 +2988,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -2991,10 +2999,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3002,10 +3010,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3013,30 +3021,30 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3044,10 +3052,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3055,10 +3063,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3066,10 +3074,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(sb.size() == 50);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(sb.size() == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 50));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3077,30 +3085,30 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(sb.size() == 50);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(sb.size() == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 50));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3108,10 +3116,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3119,10 +3127,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3130,10 +3138,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3141,30 +3149,30 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3172,10 +3180,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3183,10 +3191,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3194,10 +3202,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3205,30 +3213,30 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3236,10 +3244,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3247,10 +3255,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3258,10 +3266,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3269,28 +3277,28 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3298,10 +3306,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3309,10 +3317,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3320,10 +3328,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3331,28 +3339,28 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 0, sb,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
bytes_transferred = boost::asio::read_at(s, 1234, sb,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3360,10 +3368,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3371,10 +3379,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3382,10 +3390,10 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 0, sb,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3393,22 +3401,30 @@ void test_5_arg_streambuf_read_at()
error = boost::system::error_code();
bytes_transferred = boost::asio::read_at(s, 1234, sb,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(read_data));
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data));
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(!error);
}
void async_read_handler(const boost::system::error_code& e,
size_t bytes_transferred, size_t expected_bytes_transferred, bool* called)
{
*called = true;
- BOOST_CHECK(!e);
- BOOST_CHECK(bytes_transferred == expected_bytes_transferred);
+ BOOST_ASIO_CHECK(!e);
+ BOOST_ASIO_CHECK(bytes_transferred == expected_bytes_transferred);
}
void test_4_arg_mutable_buffers_1_async_read_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
char read_buf[sizeof(read_data)];
@@ -3419,87 +3435,93 @@ void test_4_arg_mutable_buffers_1_async_read_at()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read_at(s, 1234, buffers,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
}
void test_4_arg_boost_array_buffers_async_read_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
boost::asio::io_service ios;
test_random_access_device s(ios);
char read_buf[sizeof(read_data)];
@@ -3511,87 +3533,93 @@ void test_4_arg_boost_array_buffers_async_read_at()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read_at(s, 1234, buffers,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
}
void test_4_arg_std_array_buffers_async_read_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
#if defined(BOOST_ASIO_HAS_STD_ARRAY)
boost::asio::io_service ios;
test_random_access_device s(ios);
@@ -3604,88 +3632,93 @@ void test_4_arg_std_array_buffers_async_read_at()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read_at(s, 1234, buffers,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
}
void test_4_arg_vector_buffers_async_read_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
char read_buf[sizeof(read_data)];
@@ -3697,87 +3730,92 @@ void test_4_arg_vector_buffers_async_read_at()
memset(read_buf, 0, sizeof(read_buf));
bool called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read_at(s, 1234, buffers,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
}
void test_4_arg_streambuf_async_read_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
boost::asio::streambuf sb(sizeof(read_data));
@@ -3786,93 +3824,98 @@ void test_4_arg_streambuf_async_read_at()
sb.consume(sb.size());
bool called = false;
boost::asio::async_read_at(s, 0, sb,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ sb.consume(sb.size());
+ int i = boost::asio::async_read_at(s, 1234, sb,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
}
void test_5_arg_mutable_buffers_1_async_read_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
char read_buf[sizeof(read_data)];
@@ -3884,28 +3927,24 @@ void test_5_arg_mutable_buffers_1_async_read_at()
bool called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3913,14 +3952,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -3928,14 +3965,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3943,14 +3978,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -3958,42 +3991,36 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4001,14 +4028,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4016,14 +4041,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4031,14 +4054,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4046,42 +4067,36 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4089,14 +4104,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4104,14 +4117,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4119,14 +4130,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4134,42 +4143,36 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4177,14 +4180,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4192,14 +4193,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4207,14 +4206,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4222,42 +4219,36 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4265,14 +4256,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4280,14 +4269,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4295,14 +4282,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4310,42 +4295,36 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4353,14 +4332,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4368,14 +4345,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4383,14 +4358,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4398,42 +4371,36 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4441,14 +4408,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4456,14 +4421,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4471,14 +4434,12 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4486,182 +4447,174 @@ void test_5_arg_mutable_buffers_1_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read_at(s, 1234, buffers,
+ short_transfer, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
}
void test_5_arg_boost_array_buffers_async_read_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
boost::asio::io_service ios;
test_random_access_device s(ios);
char read_buf[sizeof(read_data)];
@@ -4674,28 +4627,24 @@ void test_5_arg_boost_array_buffers_async_read_at()
bool called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4703,14 +4652,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4718,14 +4665,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4733,14 +4678,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4748,42 +4691,36 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4791,14 +4728,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4806,14 +4741,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4821,14 +4754,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4836,42 +4767,36 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4879,14 +4804,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4894,14 +4817,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4909,14 +4830,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4924,42 +4843,36 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4967,14 +4880,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -4982,14 +4893,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -4997,14 +4906,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5012,42 +4919,36 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5055,14 +4956,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5070,14 +4969,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5085,14 +4982,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5100,42 +4995,36 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5143,14 +5032,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5158,14 +5045,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5173,14 +5058,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5188,42 +5071,36 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5231,14 +5108,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5246,14 +5121,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5261,14 +5134,12 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5276,182 +5147,174 @@ void test_5_arg_boost_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read_at(s, 1234, buffers,
+ short_transfer, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
}
void test_5_arg_std_array_buffers_async_read_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
#if defined(BOOST_ASIO_HAS_STD_ARRAY)
boost::asio::io_service ios;
test_random_access_device s(ios);
@@ -5465,28 +5328,24 @@ void test_5_arg_std_array_buffers_async_read_at()
bool called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5494,14 +5353,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5509,14 +5366,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5524,14 +5379,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5539,42 +5392,36 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5582,14 +5429,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5597,14 +5442,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5612,14 +5455,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5627,42 +5468,36 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5670,14 +5505,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5685,14 +5518,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5700,14 +5531,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5715,42 +5544,36 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5758,14 +5581,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5773,14 +5594,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5788,14 +5607,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5803,42 +5620,36 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5846,14 +5657,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5861,14 +5670,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5876,14 +5683,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5891,42 +5696,36 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5934,14 +5733,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -5949,14 +5746,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5964,14 +5759,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -5979,42 +5772,36 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6022,14 +5809,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6037,14 +5822,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6052,14 +5835,12 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6067,183 +5848,174 @@ void test_5_arg_std_array_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read_at(s, 1234, buffers,
+ short_transfer, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
}
void test_5_arg_vector_buffers_async_read_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
char read_buf[sizeof(read_data)];
@@ -6256,28 +6028,24 @@ void test_5_arg_vector_buffers_async_read_at()
bool called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6285,14 +6053,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6300,14 +6066,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6315,14 +6079,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6330,42 +6092,36 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6373,14 +6129,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6388,14 +6142,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6403,14 +6155,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6418,42 +6168,36 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6461,14 +6205,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6476,14 +6218,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6491,14 +6231,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6506,42 +6244,36 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6549,14 +6281,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6564,14 +6294,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6579,14 +6307,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6594,42 +6320,36 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6637,14 +6357,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6652,14 +6370,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6667,14 +6383,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6682,42 +6396,36 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6725,14 +6433,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6740,14 +6446,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6755,14 +6459,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6770,42 +6472,36 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6813,14 +6509,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -6828,14 +6522,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6843,14 +6535,12 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -6858,182 +6548,173 @@ void test_5_arg_vector_buffers_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 0, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
memset(read_buf, 0, sizeof(read_buf));
called = false;
boost::asio::async_read_at(s, 1234, buffers, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+
+ s.reset(read_data, sizeof(read_data));
+ memset(read_buf, 0, sizeof(read_buf));
+ int i = boost::asio::async_read_at(s, 1234, buffers,
+ short_transfer, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
}
void test_5_arg_streambuf_async_read_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
boost::asio::streambuf sb(sizeof(read_data));
@@ -7043,30 +6724,26 @@ void test_5_arg_streambuf_async_read_at()
bool called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7074,15 +6751,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7090,15 +6765,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7106,15 +6779,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7122,45 +6793,39 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_all(),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7168,15 +6833,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7184,15 +6847,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7200,15 +6861,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7216,45 +6875,39 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_at_least(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7262,15 +6915,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7278,15 +6929,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7294,15 +6943,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7310,45 +6957,39 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_at_least(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7356,15 +6997,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7372,15 +7011,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7388,15 +7025,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 50);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 50));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7404,45 +7039,39 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_at_least(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 50);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 50));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7450,15 +7079,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7466,15 +7093,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7482,15 +7107,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7498,45 +7121,39 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_exactly(1),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 1);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 1));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7544,15 +7161,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7560,15 +7175,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7576,15 +7189,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7592,45 +7203,39 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_exactly(10),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 10);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 10));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7638,15 +7243,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -7654,15 +7257,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7670,15 +7271,13 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 0, sb,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(0, sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -7686,217 +7285,199 @@ void test_5_arg_streambuf_async_read_at()
called = false;
boost::asio::async_read_at(s, 1234, sb,
boost::asio::transfer_exactly(42),
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_read_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == 42);
- BOOST_CHECK(s.check_buffers(1234, sb.data(), 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), 42));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb, old_style_transfer_all,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 0, sb, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data)));
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb.consume(sb.size());
called = false;
boost::asio::async_read_at(s, 1234, sb, short_transfer,
- boost::bind(async_read_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(read_data), &called));
+ bindns::bind(async_read_handler,
+ _1, _2, sizeof(read_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(sb.size() == sizeof(read_data));
- BOOST_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
-}
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("read_at");
- test->add(BOOST_TEST_CASE(&test_3_arg_mutable_buffers_1_read_at));
- test->add(BOOST_TEST_CASE(&test_3_arg_vector_buffers_read_at));
- test->add(BOOST_TEST_CASE(&test_3_arg_streambuf_read_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_nothrow_mutable_buffers_1_read_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_nothrow_vector_buffers_read_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_nothrow_streambuf_read_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_mutable_buffers_1_read_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_vector_buffers_read_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_streambuf_read_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_mutable_buffers_1_read_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_vector_buffers_read_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_streambuf_read_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_mutable_buffers_1_async_read_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_boost_array_buffers_async_read_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_std_array_buffers_async_read_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_vector_buffers_async_read_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_streambuf_async_read_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_mutable_buffers_1_async_read_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_boost_array_buffers_async_read_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_std_array_buffers_async_read_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_vector_buffers_async_read_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_streambuf_async_read_at));
- return test;
+ s.reset(read_data, sizeof(read_data));
+ sb.consume(sb.size());
+ int i = boost::asio::async_read_at(s, 1234, sb,
+ short_transfer, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "read_at",
+ BOOST_ASIO_TEST_CASE(test_3_arg_mutable_buffers_1_read_at)
+ BOOST_ASIO_TEST_CASE(test_3_arg_vector_buffers_read_at)
+ BOOST_ASIO_TEST_CASE(test_3_arg_streambuf_read_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_nothrow_mutable_buffers_1_read_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_nothrow_vector_buffers_read_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_nothrow_streambuf_read_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_mutable_buffers_1_read_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_vector_buffers_read_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_streambuf_read_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_mutable_buffers_1_read_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_vector_buffers_read_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_streambuf_read_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_mutable_buffers_1_async_read_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_boost_array_buffers_async_read_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_std_array_buffers_async_read_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_vector_buffers_async_read_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_streambuf_async_read_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_mutable_buffers_1_async_read_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_boost_array_buffers_async_read_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_std_array_buffers_async_read_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_vector_buffers_async_read_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_streambuf_async_read_at)
+)
diff --git a/libs/asio/test/read_until.cpp b/libs/asio/test/read_until.cpp
index 9165028de1..207a7d129c 100644
--- a/libs/asio/test/read_until.cpp
+++ b/libs/asio/test/read_until.cpp
@@ -2,7 +2,7 @@
// read_until.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,16 +16,19 @@
// Test that header file is self-contained.
#include <boost/asio/read_until.hpp>
-#include <boost/bind.hpp>
-#include <boost/noncopyable.hpp>
#include <cstring>
+#include "archetypes/async_result.hpp"
#include <boost/asio/io_service.hpp>
-#include <boost/asio/placeholders.hpp>
#include <boost/asio/streambuf.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
class test_stream
- : private boost::noncopyable
{
public:
typedef boost::asio::io_service io_service_type;
@@ -47,7 +50,7 @@ public:
{
using namespace std; // For memcpy.
- BOOST_CHECK(length <= max_length);
+ BOOST_ASIO_CHECK(length <= max_length);
memcpy(data_, data, length);
length_ = length;
@@ -109,79 +112,79 @@ void test_char_read_until()
s.reset(read_data, sizeof(read_data));
sb1.consume(sb1.size());
std::size_t length = boost::asio::read_until(s, sb1, 'Z');
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, 'Z');
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, 'Z');
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, 'Z', ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, 'Z', ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, 'Z', ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, 'Z', ec);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, 'Z', ec);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, 'Z', ec);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, 'Y', ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, 'Y', ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, 'Y', ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
}
void test_string_read_until()
@@ -195,79 +198,79 @@ void test_string_read_until()
s.reset(read_data, sizeof(read_data));
sb1.consume(sb1.size());
std::size_t length = boost::asio::read_until(s, sb1, "XYZ");
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, "XYZ");
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, "XYZ");
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, "XYZ", ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, "XYZ", ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, "XYZ", ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, "XYZ", ec);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, "XYZ", ec);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, "XYZ", ec);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, "WXY", ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, "WXY", ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, "WXY", ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
}
class match_char
@@ -293,7 +296,9 @@ private:
namespace boost {
namespace asio {
template <> struct is_match_condition<match_char>
- : public boost::true_type {};
+ {
+ enum { value = true };
+ };
} // namespace asio
} // namespace boost
@@ -308,79 +313,79 @@ void test_match_condition_read_until()
s.reset(read_data, sizeof(read_data));
sb1.consume(sb1.size());
std::size_t length = boost::asio::read_until(s, sb1, match_char('Z'));
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, match_char('Z'));
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, match_char('Z'));
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, match_char('Z'), ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, match_char('Z'), ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb1.consume(sb1.size());
length = boost::asio::read_until(s, sb1, match_char('Z'), ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, match_char('Z'), ec);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, match_char('Z'), ec);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, match_char('Z'), ec);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, match_char('Y'), ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, match_char('Y'), ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
sb2.consume(sb2.size());
length = boost::asio::read_until(s, sb2, match_char('Y'), ec);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
}
void async_read_handler(
@@ -394,6 +399,14 @@ void async_read_handler(
void test_char_async_read_until()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
boost::asio::streambuf sb1;
@@ -408,13 +421,13 @@ void test_char_async_read_until()
called = false;
sb1.consume(sb1.size());
boost::asio::async_read_until(s, sb1, 'Z',
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -423,13 +436,13 @@ void test_char_async_read_until()
called = false;
sb1.consume(sb1.size());
boost::asio::async_read_until(s, sb1, 'Z',
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -438,13 +451,13 @@ void test_char_async_read_until()
called = false;
sb1.consume(sb1.size());
boost::asio::async_read_until(s, sb1, 'Z',
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
ec = boost::system::error_code();
@@ -452,13 +465,13 @@ void test_char_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, 'Z',
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -467,13 +480,13 @@ void test_char_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, 'Z',
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -482,13 +495,13 @@ void test_char_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, 'Z',
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
ec = boost::system::error_code();
@@ -496,13 +509,13 @@ void test_char_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, 'Y',
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -511,13 +524,13 @@ void test_char_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, 'Y',
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -526,17 +539,33 @@ void test_char_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, 'Y',
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
+
+ s.reset(read_data, sizeof(read_data));
+ sb2.consume(sb2.size());
+ int i = boost::asio::async_read_until(s, sb2, 'Y',
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
}
void test_string_async_read_until()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
boost::asio::streambuf sb1;
@@ -551,13 +580,13 @@ void test_string_async_read_until()
called = false;
sb1.consume(sb1.size());
boost::asio::async_read_until(s, sb1, "XYZ",
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -566,13 +595,13 @@ void test_string_async_read_until()
called = false;
sb1.consume(sb1.size());
boost::asio::async_read_until(s, sb1, "XYZ",
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -581,13 +610,13 @@ void test_string_async_read_until()
called = false;
sb1.consume(sb1.size());
boost::asio::async_read_until(s, sb1, "XYZ",
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
ec = boost::system::error_code();
@@ -595,13 +624,13 @@ void test_string_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, "XYZ",
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -610,13 +639,13 @@ void test_string_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, "XYZ",
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -625,13 +654,13 @@ void test_string_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, "XYZ",
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
ec = boost::system::error_code();
@@ -639,13 +668,13 @@ void test_string_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, "WXY",
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -654,13 +683,13 @@ void test_string_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, "WXY",
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -669,17 +698,33 @@ void test_string_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, "WXY",
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
+
+ s.reset(read_data, sizeof(read_data));
+ sb2.consume(sb2.size());
+ int i = boost::asio::async_read_until(s, sb2, "WXY",
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
}
void test_match_condition_async_read_until()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
boost::asio::streambuf sb1;
@@ -694,13 +739,13 @@ void test_match_condition_async_read_until()
called = false;
sb1.consume(sb1.size());
boost::asio::async_read_until(s, sb1, match_char('Z'),
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -709,13 +754,13 @@ void test_match_condition_async_read_until()
called = false;
sb1.consume(sb1.size());
boost::asio::async_read_until(s, sb1, match_char('Z'),
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -724,13 +769,13 @@ void test_match_condition_async_read_until()
called = false;
sb1.consume(sb1.size());
boost::asio::async_read_until(s, sb1, match_char('Z'),
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 26);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 26);
s.reset(read_data, sizeof(read_data));
ec = boost::system::error_code();
@@ -738,13 +783,13 @@ void test_match_condition_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, match_char('Z'),
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -753,13 +798,13 @@ void test_match_condition_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, match_char('Z'),
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -768,13 +813,13 @@ void test_match_condition_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, match_char('Z'),
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(ec == boost::asio::error::not_found);
- BOOST_CHECK(length == 0);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(ec == boost::asio::error::not_found);
+ BOOST_ASIO_CHECK(length == 0);
s.reset(read_data, sizeof(read_data));
ec = boost::system::error_code();
@@ -782,13 +827,13 @@ void test_match_condition_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, match_char('Y'),
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(1);
@@ -797,13 +842,13 @@ void test_match_condition_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, match_char('Y'),
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
s.reset(read_data, sizeof(read_data));
s.next_read_length(10);
@@ -812,23 +857,30 @@ void test_match_condition_async_read_until()
called = false;
sb2.consume(sb2.size());
boost::asio::async_read_until(s, sb2, match_char('Y'),
- boost::bind(async_read_handler, boost::asio::placeholders::error, &ec,
- boost::asio::placeholders::bytes_transferred, &length, &called));
+ bindns::bind(async_read_handler, _1, &ec,
+ _2, &length, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(!ec);
- BOOST_CHECK(length == 25);
-}
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(!ec);
+ BOOST_ASIO_CHECK(length == 25);
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("read_until");
- test->add(BOOST_TEST_CASE(&test_char_read_until));
- test->add(BOOST_TEST_CASE(&test_string_read_until));
- test->add(BOOST_TEST_CASE(&test_match_condition_read_until));
- test->add(BOOST_TEST_CASE(&test_char_async_read_until));
- test->add(BOOST_TEST_CASE(&test_string_async_read_until));
- test->add(BOOST_TEST_CASE(&test_match_condition_async_read_until));
- return test;
+ s.reset(read_data, sizeof(read_data));
+ sb2.consume(sb2.size());
+ int i = boost::asio::async_read_until(s, sb2, match_char('Y'),
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "read_until",
+ BOOST_ASIO_TEST_CASE(test_char_read_until)
+ BOOST_ASIO_TEST_CASE(test_string_read_until)
+ BOOST_ASIO_TEST_CASE(test_match_condition_read_until)
+ BOOST_ASIO_TEST_CASE(test_char_async_read_until)
+ BOOST_ASIO_TEST_CASE(test_string_async_read_until)
+ BOOST_ASIO_TEST_CASE(test_match_condition_async_read_until)
+)
diff --git a/libs/asio/test/seq_packet_socket_service.cpp b/libs/asio/test/seq_packet_socket_service.cpp
index ed5f081193..fe6d9a7f9f 100644
--- a/libs/asio/test/seq_packet_socket_service.cpp
+++ b/libs/asio/test/seq_packet_socket_service.cpp
@@ -2,7 +2,7 @@
// seq_packet_socket_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("seq_packet_socket_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "seq_packet_socket_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/serial_port.cpp b/libs/asio/test/serial_port.cpp
index 24deffb339..e34014cdea 100644
--- a/libs/asio/test/serial_port.cpp
+++ b/libs/asio/test/serial_port.cpp
@@ -2,7 +2,7 @@
// serial_port.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -17,6 +17,7 @@
// Test that header file is self-contained.
#include <boost/asio/serial_port.hpp>
+#include "archetypes/async_result.hpp"
#include <boost/asio/io_service.hpp>
#include "unit_test.hpp"
@@ -48,6 +49,7 @@ void test()
char mutable_char_buffer[128] = "";
const char const_char_buffer[128] = "";
serial_port::baud_rate serial_port_option;
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
// basic_serial_port constructors.
@@ -121,11 +123,17 @@ void test()
port1.async_write_some(buffer(mutable_char_buffer), &write_some_handler);
port1.async_write_some(buffer(const_char_buffer), &write_some_handler);
+ int i1 = port1.async_write_some(buffer(mutable_char_buffer), lazy);
+ (void)i1;
+ int i2 = port1.async_write_some(buffer(const_char_buffer), lazy);
+ (void)i2;
port1.read_some(buffer(mutable_char_buffer));
port1.read_some(buffer(mutable_char_buffer), ec);
port1.async_read_some(buffer(mutable_char_buffer), &read_some_handler);
+ int i3 = port1.async_read_some(buffer(mutable_char_buffer), lazy);
+ (void)i3;
}
catch (std::exception&)
{
@@ -137,9 +145,8 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("serial_port");
- test->add(BOOST_TEST_CASE(&serial_port_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "serial_port",
+ BOOST_ASIO_TEST_CASE(serial_port_compile::test)
+)
diff --git a/libs/asio/test/serial_port_base.cpp b/libs/asio/test/serial_port_base.cpp
index 10185899e7..c06a4f885a 100644
--- a/libs/asio/test/serial_port_base.cpp
+++ b/libs/asio/test/serial_port_base.cpp
@@ -2,7 +2,7 @@
// serial_port_base.cpp
// ~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -92,9 +92,8 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("serial_port_base");
- test->add(BOOST_TEST_CASE(&serial_port_base_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "serial_port_base",
+ BOOST_ASIO_TEST_CASE(serial_port_base_compile::test)
+)
diff --git a/libs/asio/test/serial_port_service.cpp b/libs/asio/test/serial_port_service.cpp
index e10693c43d..68d02243d2 100644
--- a/libs/asio/test/serial_port_service.cpp
+++ b/libs/asio/test/serial_port_service.cpp
@@ -2,7 +2,7 @@
// serial_port_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -19,9 +19,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("serial_port_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "serial_port_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/signal_set.cpp b/libs/asio/test/signal_set.cpp
index 30204f4a17..a4e497b0db 100644
--- a/libs/asio/test/signal_set.cpp
+++ b/libs/asio/test/signal_set.cpp
@@ -2,7 +2,7 @@
// signal_set.cpp
// ~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,6 +16,7 @@
// Test that header file is self-contained.
#include <boost/asio/signal_set.hpp>
+#include "archetypes/async_result.hpp"
#include <boost/asio/io_service.hpp>
#include "unit_test.hpp"
@@ -39,6 +40,7 @@ void test()
try
{
io_service ios;
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
// basic_signal_set constructors.
@@ -68,6 +70,8 @@ void test()
set1.cancel(ec);
set1.async_wait(&signal_handler);
+ int i = set1.async_wait(lazy);
+ (void)i;
}
catch (std::exception&)
{
@@ -78,9 +82,8 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("signal_set");
- test->add(BOOST_TEST_CASE(&signal_set_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "signal_set",
+ BOOST_ASIO_TEST_CASE(signal_set_compile::test)
+)
diff --git a/libs/asio/test/signal_set_service.cpp b/libs/asio/test/signal_set_service.cpp
index ea93588e30..52cfc40a00 100644
--- a/libs/asio/test/signal_set_service.cpp
+++ b/libs/asio/test/signal_set_service.cpp
@@ -2,7 +2,7 @@
// signal_set_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("signal_set_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "signal_set_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/socket_acceptor_service.cpp b/libs/asio/test/socket_acceptor_service.cpp
index 611d891d76..ed422fc94e 100644
--- a/libs/asio/test/socket_acceptor_service.cpp
+++ b/libs/asio/test/socket_acceptor_service.cpp
@@ -2,7 +2,7 @@
// socket_acceptor_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("socket_acceptor_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "socket_acceptor_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/socket_base.cpp b/libs/asio/test/socket_base.cpp
index f9dbc126eb..3e1ce7e687 100644
--- a/libs/asio/test/socket_base.cpp
+++ b/libs/asio/test/socket_base.cpp
@@ -2,7 +2,7 @@
// socket_base.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -208,448 +208,447 @@ void test()
// broadcast class.
socket_base::broadcast broadcast1(true);
- BOOST_CHECK(broadcast1.value());
- BOOST_CHECK(static_cast<bool>(broadcast1));
- BOOST_CHECK(!!broadcast1);
+ BOOST_ASIO_CHECK(broadcast1.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(broadcast1));
+ BOOST_ASIO_CHECK(!!broadcast1);
udp_sock.set_option(broadcast1, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::broadcast broadcast2;
udp_sock.get_option(broadcast2, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(broadcast2.value());
- BOOST_CHECK(static_cast<bool>(broadcast2));
- BOOST_CHECK(!!broadcast2);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(broadcast2.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(broadcast2));
+ BOOST_ASIO_CHECK(!!broadcast2);
socket_base::broadcast broadcast3(false);
- BOOST_CHECK(!broadcast3.value());
- BOOST_CHECK(!static_cast<bool>(broadcast3));
- BOOST_CHECK(!broadcast3);
+ BOOST_ASIO_CHECK(!broadcast3.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(broadcast3));
+ BOOST_ASIO_CHECK(!broadcast3);
udp_sock.set_option(broadcast3, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::broadcast broadcast4;
udp_sock.get_option(broadcast4, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(!broadcast4.value());
- BOOST_CHECK(!static_cast<bool>(broadcast4));
- BOOST_CHECK(!broadcast4);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(!broadcast4.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(broadcast4));
+ BOOST_ASIO_CHECK(!broadcast4);
// debug class.
socket_base::debug debug1(true);
- BOOST_CHECK(debug1.value());
- BOOST_CHECK(static_cast<bool>(debug1));
- BOOST_CHECK(!!debug1);
+ BOOST_ASIO_CHECK(debug1.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(debug1));
+ BOOST_ASIO_CHECK(!!debug1);
udp_sock.set_option(debug1, ec);
#if defined(__linux__)
// On Linux, only root can set SO_DEBUG.
bool not_root = (ec == boost::asio::error::access_denied);
- BOOST_CHECK(!ec || not_root);
- BOOST_WARN_MESSAGE(!ec, "Must be root to set debug socket option");
+ BOOST_ASIO_CHECK(!ec || not_root);
+ BOOST_ASIO_WARN_MESSAGE(!ec, "Must be root to set debug socket option");
#else // defined(__linux__)
-# if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+# if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-# else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
-# endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+# else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+# endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
#endif // defined(__linux__)
socket_base::debug debug2;
udp_sock.get_option(debug2, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
# if defined(__linux__)
- BOOST_CHECK(debug2.value() || not_root);
- BOOST_CHECK(static_cast<bool>(debug2) || not_root);
- BOOST_CHECK(!!debug2 || not_root);
+ BOOST_ASIO_CHECK(debug2.value() || not_root);
+ BOOST_ASIO_CHECK(static_cast<bool>(debug2) || not_root);
+ BOOST_ASIO_CHECK(!!debug2 || not_root);
# else // defined(__linux__)
- BOOST_CHECK(debug2.value());
- BOOST_CHECK(static_cast<bool>(debug2));
- BOOST_CHECK(!!debug2);
+ BOOST_ASIO_CHECK(debug2.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(debug2));
+ BOOST_ASIO_CHECK(!!debug2);
# endif // defined(__linux__)
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
socket_base::debug debug3(false);
- BOOST_CHECK(!debug3.value());
- BOOST_CHECK(!static_cast<bool>(debug3));
- BOOST_CHECK(!debug3);
+ BOOST_ASIO_CHECK(!debug3.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(debug3));
+ BOOST_ASIO_CHECK(!debug3);
udp_sock.set_option(debug3, ec);
#if defined(__linux__)
- BOOST_CHECK(!ec || not_root);
+ BOOST_ASIO_CHECK(!ec || not_root);
#else // defined(__linux__)
-# if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+# if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-# else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
-# endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+# else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+# endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
#endif // defined(__linux__)
socket_base::debug debug4;
udp_sock.get_option(debug4, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
# if defined(__linux__)
- BOOST_CHECK(!debug4.value() || not_root);
- BOOST_CHECK(!static_cast<bool>(debug4) || not_root);
- BOOST_CHECK(!debug4 || not_root);
+ BOOST_ASIO_CHECK(!debug4.value() || not_root);
+ BOOST_ASIO_CHECK(!static_cast<bool>(debug4) || not_root);
+ BOOST_ASIO_CHECK(!debug4 || not_root);
# else // defined(__linux__)
- BOOST_CHECK(!debug4.value());
- BOOST_CHECK(!static_cast<bool>(debug4));
- BOOST_CHECK(!debug4);
+ BOOST_ASIO_CHECK(!debug4.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(debug4));
+ BOOST_ASIO_CHECK(!debug4);
# endif // defined(__linux__)
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// do_not_route class.
socket_base::do_not_route do_not_route1(true);
- BOOST_CHECK(do_not_route1.value());
- BOOST_CHECK(static_cast<bool>(do_not_route1));
- BOOST_CHECK(!!do_not_route1);
+ BOOST_ASIO_CHECK(do_not_route1.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(do_not_route1));
+ BOOST_ASIO_CHECK(!!do_not_route1);
udp_sock.set_option(do_not_route1, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
socket_base::do_not_route do_not_route2;
udp_sock.get_option(do_not_route2, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(do_not_route2.value());
- BOOST_CHECK(static_cast<bool>(do_not_route2));
- BOOST_CHECK(!!do_not_route2);
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(do_not_route2.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(do_not_route2));
+ BOOST_ASIO_CHECK(!!do_not_route2);
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
socket_base::do_not_route do_not_route3(false);
- BOOST_CHECK(!do_not_route3.value());
- BOOST_CHECK(!static_cast<bool>(do_not_route3));
- BOOST_CHECK(!do_not_route3);
+ BOOST_ASIO_CHECK(!do_not_route3.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(do_not_route3));
+ BOOST_ASIO_CHECK(!do_not_route3);
udp_sock.set_option(do_not_route3, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
socket_base::do_not_route do_not_route4;
udp_sock.get_option(do_not_route4, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(!do_not_route4.value());
- BOOST_CHECK(!static_cast<bool>(do_not_route4));
- BOOST_CHECK(!do_not_route4);
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(!do_not_route4.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(do_not_route4));
+ BOOST_ASIO_CHECK(!do_not_route4);
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// keep_alive class.
socket_base::keep_alive keep_alive1(true);
- BOOST_CHECK(keep_alive1.value());
- BOOST_CHECK(static_cast<bool>(keep_alive1));
- BOOST_CHECK(!!keep_alive1);
+ BOOST_ASIO_CHECK(keep_alive1.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(keep_alive1));
+ BOOST_ASIO_CHECK(!!keep_alive1);
tcp_sock.set_option(keep_alive1, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::keep_alive keep_alive2;
tcp_sock.get_option(keep_alive2, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(keep_alive2.value());
- BOOST_CHECK(static_cast<bool>(keep_alive2));
- BOOST_CHECK(!!keep_alive2);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(keep_alive2.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(keep_alive2));
+ BOOST_ASIO_CHECK(!!keep_alive2);
socket_base::keep_alive keep_alive3(false);
- BOOST_CHECK(!keep_alive3.value());
- BOOST_CHECK(!static_cast<bool>(keep_alive3));
- BOOST_CHECK(!keep_alive3);
+ BOOST_ASIO_CHECK(!keep_alive3.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(keep_alive3));
+ BOOST_ASIO_CHECK(!keep_alive3);
tcp_sock.set_option(keep_alive3, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::keep_alive keep_alive4;
tcp_sock.get_option(keep_alive4, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(!keep_alive4.value());
- BOOST_CHECK(!static_cast<bool>(keep_alive4));
- BOOST_CHECK(!keep_alive4);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(!keep_alive4.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(keep_alive4));
+ BOOST_ASIO_CHECK(!keep_alive4);
// send_buffer_size class.
socket_base::send_buffer_size send_buffer_size1(4096);
- BOOST_CHECK(send_buffer_size1.value() == 4096);
+ BOOST_ASIO_CHECK(send_buffer_size1.value() == 4096);
tcp_sock.set_option(send_buffer_size1, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::send_buffer_size send_buffer_size2;
tcp_sock.get_option(send_buffer_size2, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(send_buffer_size2.value() == 4096);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(send_buffer_size2.value() == 4096);
socket_base::send_buffer_size send_buffer_size3(16384);
- BOOST_CHECK(send_buffer_size3.value() == 16384);
+ BOOST_ASIO_CHECK(send_buffer_size3.value() == 16384);
tcp_sock.set_option(send_buffer_size3, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::send_buffer_size send_buffer_size4;
tcp_sock.get_option(send_buffer_size4, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(send_buffer_size4.value() == 16384);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(send_buffer_size4.value() == 16384);
// send_low_watermark class.
socket_base::send_low_watermark send_low_watermark1(4096);
- BOOST_CHECK(send_low_watermark1.value() == 4096);
+ BOOST_ASIO_CHECK(send_low_watermark1.value() == 4096);
tcp_sock.set_option(send_low_watermark1, ec);
#if defined(WIN32) || defined(__linux__) || defined(__sun)
- BOOST_CHECK(!!ec); // Not supported on Windows, Linux or Solaris.
+ BOOST_ASIO_CHECK(!!ec); // Not supported on Windows, Linux or Solaris.
#else
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
#endif
socket_base::send_low_watermark send_low_watermark2;
tcp_sock.get_option(send_low_watermark2, ec);
#if defined(WIN32) || defined(__sun)
- BOOST_CHECK(!!ec); // Not supported on Windows or Solaris.
+ BOOST_ASIO_CHECK(!!ec); // Not supported on Windows or Solaris.
#elif defined(__linux__)
- BOOST_CHECK(!ec); // Not supported on Linux but can get value.
+ BOOST_ASIO_CHECK(!ec); // Not supported on Linux but can get value.
#else
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(send_low_watermark2.value() == 4096);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(send_low_watermark2.value() == 4096);
#endif
socket_base::send_low_watermark send_low_watermark3(8192);
- BOOST_CHECK(send_low_watermark3.value() == 8192);
+ BOOST_ASIO_CHECK(send_low_watermark3.value() == 8192);
tcp_sock.set_option(send_low_watermark3, ec);
#if defined(WIN32) || defined(__linux__) || defined(__sun)
- BOOST_CHECK(!!ec); // Not supported on Windows, Linux or Solaris.
+ BOOST_ASIO_CHECK(!!ec); // Not supported on Windows, Linux or Solaris.
#else
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
#endif
socket_base::send_low_watermark send_low_watermark4;
tcp_sock.get_option(send_low_watermark4, ec);
#if defined(WIN32) || defined(__sun)
- BOOST_CHECK(!!ec); // Not supported on Windows or Solaris.
+ BOOST_ASIO_CHECK(!!ec); // Not supported on Windows or Solaris.
#elif defined(__linux__)
- BOOST_CHECK(!ec); // Not supported on Linux but can get value.
+ BOOST_ASIO_CHECK(!ec); // Not supported on Linux but can get value.
#else
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(send_low_watermark4.value() == 8192);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(send_low_watermark4.value() == 8192);
#endif
// receive_buffer_size class.
socket_base::receive_buffer_size receive_buffer_size1(4096);
- BOOST_CHECK(receive_buffer_size1.value() == 4096);
+ BOOST_ASIO_CHECK(receive_buffer_size1.value() == 4096);
tcp_sock.set_option(receive_buffer_size1, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
socket_base::receive_buffer_size receive_buffer_size2;
tcp_sock.get_option(receive_buffer_size2, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK(!ec); // Not supported under Windows CE but can get value.
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(receive_buffer_size2.value() == 4096);
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK(!ec); // Not supported under Windows CE but can get value.
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(receive_buffer_size2.value() == 4096);
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
socket_base::receive_buffer_size receive_buffer_size3(16384);
- BOOST_CHECK(receive_buffer_size3.value() == 16384);
+ BOOST_ASIO_CHECK(receive_buffer_size3.value() == 16384);
tcp_sock.set_option(receive_buffer_size3, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// Option is not supported under Windows CE.
- BOOST_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
+ BOOST_ASIO_CHECK_MESSAGE(ec == boost::asio::error::no_protocol_option,
ec.value() << ", " << ec.message());
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
socket_base::receive_buffer_size receive_buffer_size4;
tcp_sock.get_option(receive_buffer_size4, ec);
-#if defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK(!ec); // Not supported under Windows CE but can get value.
-#else // defined(BOOST_WINDOWS) && defined(UNDER_CE)
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(receive_buffer_size4.value() == 16384);
-#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE)
+#if defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK(!ec); // Not supported under Windows CE but can get value.
+#else // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(receive_buffer_size4.value() == 16384);
+#endif // defined(BOOST_ASIO_WINDOWS) && defined(UNDER_CE)
// receive_low_watermark class.
socket_base::receive_low_watermark receive_low_watermark1(4096);
- BOOST_CHECK(receive_low_watermark1.value() == 4096);
+ BOOST_ASIO_CHECK(receive_low_watermark1.value() == 4096);
tcp_sock.set_option(receive_low_watermark1, ec);
#if defined(WIN32) || defined(__sun)
- BOOST_CHECK(!!ec); // Not supported on Windows or Solaris.
+ BOOST_ASIO_CHECK(!!ec); // Not supported on Windows or Solaris.
#else
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
#endif
socket_base::receive_low_watermark receive_low_watermark2;
tcp_sock.get_option(receive_low_watermark2, ec);
#if defined(WIN32) || defined(__sun)
- BOOST_CHECK(!!ec); // Not supported on Windows or Solaris.
+ BOOST_ASIO_CHECK(!!ec); // Not supported on Windows or Solaris.
#else
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(receive_low_watermark2.value() == 4096);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(receive_low_watermark2.value() == 4096);
#endif
socket_base::receive_low_watermark receive_low_watermark3(8192);
- BOOST_CHECK(receive_low_watermark3.value() == 8192);
+ BOOST_ASIO_CHECK(receive_low_watermark3.value() == 8192);
tcp_sock.set_option(receive_low_watermark3, ec);
#if defined(WIN32) || defined(__sun)
- BOOST_CHECK(!!ec); // Not supported on Windows or Solaris.
+ BOOST_ASIO_CHECK(!!ec); // Not supported on Windows or Solaris.
#else
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
#endif
socket_base::receive_low_watermark receive_low_watermark4;
tcp_sock.get_option(receive_low_watermark4, ec);
#if defined(WIN32) || defined(__sun)
- BOOST_CHECK(!!ec); // Not supported on Windows or Solaris.
+ BOOST_ASIO_CHECK(!!ec); // Not supported on Windows or Solaris.
#else
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(receive_low_watermark4.value() == 8192);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(receive_low_watermark4.value() == 8192);
#endif
// reuse_address class.
socket_base::reuse_address reuse_address1(true);
- BOOST_CHECK(reuse_address1.value());
- BOOST_CHECK(static_cast<bool>(reuse_address1));
- BOOST_CHECK(!!reuse_address1);
+ BOOST_ASIO_CHECK(reuse_address1.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(reuse_address1));
+ BOOST_ASIO_CHECK(!!reuse_address1);
udp_sock.set_option(reuse_address1, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::reuse_address reuse_address2;
udp_sock.get_option(reuse_address2, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(reuse_address2.value());
- BOOST_CHECK(static_cast<bool>(reuse_address2));
- BOOST_CHECK(!!reuse_address2);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(reuse_address2.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(reuse_address2));
+ BOOST_ASIO_CHECK(!!reuse_address2);
socket_base::reuse_address reuse_address3(false);
- BOOST_CHECK(!reuse_address3.value());
- BOOST_CHECK(!static_cast<bool>(reuse_address3));
- BOOST_CHECK(!reuse_address3);
+ BOOST_ASIO_CHECK(!reuse_address3.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(reuse_address3));
+ BOOST_ASIO_CHECK(!reuse_address3);
udp_sock.set_option(reuse_address3, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::reuse_address reuse_address4;
udp_sock.get_option(reuse_address4, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(!reuse_address4.value());
- BOOST_CHECK(!static_cast<bool>(reuse_address4));
- BOOST_CHECK(!reuse_address4);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(!reuse_address4.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(reuse_address4));
+ BOOST_ASIO_CHECK(!reuse_address4);
// linger class.
socket_base::linger linger1(true, 60);
- BOOST_CHECK(linger1.enabled());
- BOOST_CHECK(linger1.timeout() == 60);
+ BOOST_ASIO_CHECK(linger1.enabled());
+ BOOST_ASIO_CHECK(linger1.timeout() == 60);
tcp_sock.set_option(linger1, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::linger linger2;
tcp_sock.get_option(linger2, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(linger2.enabled());
- BOOST_CHECK(linger2.timeout() == 60);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(linger2.enabled());
+ BOOST_ASIO_CHECK(linger2.timeout() == 60);
socket_base::linger linger3(false, 0);
- BOOST_CHECK(!linger3.enabled());
- BOOST_CHECK(linger3.timeout() == 0);
+ BOOST_ASIO_CHECK(!linger3.enabled());
+ BOOST_ASIO_CHECK(linger3.timeout() == 0);
tcp_sock.set_option(linger3, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::linger linger4;
tcp_sock.get_option(linger4, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(!linger4.enabled());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(!linger4.enabled());
// enable_connection_aborted class.
socket_base::enable_connection_aborted enable_connection_aborted1(true);
- BOOST_CHECK(enable_connection_aborted1.value());
- BOOST_CHECK(static_cast<bool>(enable_connection_aborted1));
- BOOST_CHECK(!!enable_connection_aborted1);
+ BOOST_ASIO_CHECK(enable_connection_aborted1.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(enable_connection_aborted1));
+ BOOST_ASIO_CHECK(!!enable_connection_aborted1);
tcp_acceptor.set_option(enable_connection_aborted1, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::enable_connection_aborted enable_connection_aborted2;
tcp_acceptor.get_option(enable_connection_aborted2, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(enable_connection_aborted2.value());
- BOOST_CHECK(static_cast<bool>(enable_connection_aborted2));
- BOOST_CHECK(!!enable_connection_aborted2);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(enable_connection_aborted2.value());
+ BOOST_ASIO_CHECK(static_cast<bool>(enable_connection_aborted2));
+ BOOST_ASIO_CHECK(!!enable_connection_aborted2);
socket_base::enable_connection_aborted enable_connection_aborted3(false);
- BOOST_CHECK(!enable_connection_aborted3.value());
- BOOST_CHECK(!static_cast<bool>(enable_connection_aborted3));
- BOOST_CHECK(!enable_connection_aborted3);
+ BOOST_ASIO_CHECK(!enable_connection_aborted3.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(enable_connection_aborted3));
+ BOOST_ASIO_CHECK(!enable_connection_aborted3);
tcp_acceptor.set_option(enable_connection_aborted3, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::enable_connection_aborted enable_connection_aborted4;
tcp_acceptor.get_option(enable_connection_aborted4, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
- BOOST_CHECK(!enable_connection_aborted4.value());
- BOOST_CHECK(!static_cast<bool>(enable_connection_aborted4));
- BOOST_CHECK(!enable_connection_aborted4);
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK(!enable_connection_aborted4.value());
+ BOOST_ASIO_CHECK(!static_cast<bool>(enable_connection_aborted4));
+ BOOST_ASIO_CHECK(!enable_connection_aborted4);
// non_blocking_io class.
socket_base::non_blocking_io non_blocking_io1(true);
tcp_sock.io_control(non_blocking_io1, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
socket_base::non_blocking_io non_blocking_io2(false);
tcp_sock.io_control(non_blocking_io2, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
// bytes_readable class.
socket_base::bytes_readable bytes_readable;
udp_sock.io_control(bytes_readable, ec);
- BOOST_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
+ BOOST_ASIO_CHECK_MESSAGE(!ec, ec.value() << ", " << ec.message());
}
} // namespace socket_base_runtime
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("socket_base");
- test->add(BOOST_TEST_CASE(&socket_base_compile::test));
- test->add(BOOST_TEST_CASE(&socket_base_runtime::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "socket_base",
+ BOOST_ASIO_TEST_CASE(socket_base_compile::test)
+ BOOST_ASIO_TEST_CASE(socket_base_runtime::test)
+)
diff --git a/libs/asio/test/ssl/Jamfile b/libs/asio/test/ssl/Jamfile
index b877795628..4c663dd2ca 100644
--- a/libs/asio/test/ssl/Jamfile
+++ b/libs/asio/test/ssl/Jamfile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
@@ -24,8 +24,7 @@ if $(UNIX)
}
template unit_test
- : <lib>@boost/libs/thread/build/boost_thread
- <lib>@boost/libs/system/build/boost_system
+ : <lib>@boost/libs/system/build/boost_system
: <lib>@boost/libs/test/build/boost_test_exec_monitor
: <include>../../../..
<define>BOOST_ALL_NO_LIB=1
diff --git a/libs/asio/test/ssl/Jamfile.v2 b/libs/asio/test/ssl/Jamfile.v2
index baae4898ae..f16082a03e 100644
--- a/libs/asio/test/ssl/Jamfile.v2
+++ b/libs/asio/test/ssl/Jamfile.v2
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2014 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)
@@ -35,7 +35,6 @@ local USE_SELECT =
project
: requirements
<library>/boost/date_time//boost_date_time
- <library>/boost/thread//boost_thread
<library>/boost/test//boost_test_exec_monitor
<define>BOOST_ALL_NO_LIB=1
<threading>multi
diff --git a/libs/asio/test/ssl/basic_context.cpp b/libs/asio/test/ssl/basic_context.cpp
index 3c4401baab..1c9d4bdf8c 100644
--- a/libs/asio/test/ssl/basic_context.cpp
+++ b/libs/asio/test/ssl/basic_context.cpp
@@ -2,7 +2,7 @@
// basic_context.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ssl/basic_context");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ssl/basic_context",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ssl/context.cpp b/libs/asio/test/ssl/context.cpp
index 4adfac814b..2aafb01682 100644
--- a/libs/asio/test/ssl/context.cpp
+++ b/libs/asio/test/ssl/context.cpp
@@ -2,7 +2,7 @@
// context.cpp
// ~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ssl/context");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ssl/context",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ssl/context_base.cpp b/libs/asio/test/ssl/context_base.cpp
index fed8bb9979..6fb133a432 100644
--- a/libs/asio/test/ssl/context_base.cpp
+++ b/libs/asio/test/ssl/context_base.cpp
@@ -2,7 +2,7 @@
// context_base.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ssl/context_base");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ssl/context_base",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ssl/context_service.cpp b/libs/asio/test/ssl/context_service.cpp
index 773b8b984a..20ca18679d 100644
--- a/libs/asio/test/ssl/context_service.cpp
+++ b/libs/asio/test/ssl/context_service.cpp
@@ -2,7 +2,7 @@
// context_service.cpp
// ~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ssl/context_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ssl/context_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ssl/rfc2818_verification.cpp b/libs/asio/test/ssl/rfc2818_verification.cpp
index dec9a38643..1f0a053101 100644
--- a/libs/asio/test/ssl/rfc2818_verification.cpp
+++ b/libs/asio/test/ssl/rfc2818_verification.cpp
@@ -2,7 +2,7 @@
// rfc2818_verification.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ssl/rfc2818_verification");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ssl/rfc2818_verification",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ssl/stream.cpp b/libs/asio/test/ssl/stream.cpp
index d59effbc20..330260347d 100644
--- a/libs/asio/test/ssl/stream.cpp
+++ b/libs/asio/test/ssl/stream.cpp
@@ -2,7 +2,7 @@
// stream.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,6 +18,7 @@
#include <boost/asio.hpp>
#include <boost/asio/ssl.hpp>
+#include "../archetypes/async_result.hpp"
#include "../unit_test.hpp"
//------------------------------------------------------------------------------
@@ -40,6 +41,10 @@ void handshake_handler(const boost::system::error_code&)
{
}
+void buffered_handshake_handler(const boost::system::error_code&, std::size_t)
+{
+}
+
void shutdown_handler(const boost::system::error_code&)
{
}
@@ -63,6 +68,7 @@ void test()
char mutable_char_buffer[128] = "";
const char const_char_buffer[128] = "";
boost::asio::ssl::context context(ios, boost::asio::ssl::context::sslv23);
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
// ssl::stream constructors.
@@ -99,6 +105,9 @@ void test()
stream1.set_verify_mode(ssl::verify_none);
stream1.set_verify_mode(ssl::verify_none, ec);
+ stream1.set_verify_depth(1);
+ stream1.set_verify_depth(1, ec);
+
stream1.set_verify_callback(verify_callback);
stream1.set_verify_callback(verify_callback, ec);
#endif // !defined(BOOST_ASIO_ENABLE_OLD_SSL)
@@ -108,13 +117,57 @@ void test()
stream1.handshake(ssl::stream_base::client, ec);
stream1.handshake(ssl::stream_base::server, ec);
+#if !defined(BOOST_ASIO_ENABLE_OLD_SSL)
+ stream1.handshake(ssl::stream_base::client, buffer(mutable_char_buffer));
+ stream1.handshake(ssl::stream_base::server, buffer(mutable_char_buffer));
+ stream1.handshake(ssl::stream_base::client, buffer(const_char_buffer));
+ stream1.handshake(ssl::stream_base::server, buffer(const_char_buffer));
+ stream1.handshake(ssl::stream_base::client,
+ buffer(mutable_char_buffer), ec);
+ stream1.handshake(ssl::stream_base::server,
+ buffer(mutable_char_buffer), ec);
+ stream1.handshake(ssl::stream_base::client,
+ buffer(const_char_buffer), ec);
+ stream1.handshake(ssl::stream_base::server,
+ buffer(const_char_buffer), ec);
+#endif // !defined(BOOST_ASIO_ENABLE_OLD_SSL)
+
stream1.async_handshake(ssl::stream_base::client, handshake_handler);
stream1.async_handshake(ssl::stream_base::server, handshake_handler);
+ int i1 = stream1.async_handshake(ssl::stream_base::client, lazy);
+ (void)i1;
+ int i2 = stream1.async_handshake(ssl::stream_base::server, lazy);
+ (void)i2;
+
+#if !defined(BOOST_ASIO_ENABLE_OLD_SSL)
+ stream1.async_handshake(ssl::stream_base::client,
+ buffer(mutable_char_buffer), buffered_handshake_handler);
+ stream1.async_handshake(ssl::stream_base::server,
+ buffer(mutable_char_buffer), buffered_handshake_handler);
+ stream1.async_handshake(ssl::stream_base::client,
+ buffer(const_char_buffer), buffered_handshake_handler);
+ stream1.async_handshake(ssl::stream_base::server,
+ buffer(const_char_buffer), buffered_handshake_handler);
+ int i3 = stream1.async_handshake(ssl::stream_base::client,
+ buffer(mutable_char_buffer), lazy);
+ (void)i3;
+ int i4 = stream1.async_handshake(ssl::stream_base::server,
+ buffer(mutable_char_buffer), lazy);
+ (void)i4;
+ int i5 = stream1.async_handshake(ssl::stream_base::client,
+ buffer(const_char_buffer), lazy);
+ (void)i5;
+ int i6 = stream1.async_handshake(ssl::stream_base::server,
+ buffer(const_char_buffer), lazy);
+ (void)i6;
+#endif // !defined(BOOST_ASIO_ENABLE_OLD_SSL)
stream1.shutdown();
stream1.shutdown(ec);
stream1.async_shutdown(shutdown_handler);
+ int i7 = stream1.async_shutdown(lazy);
+ (void)i7;
stream1.write_some(buffer(mutable_char_buffer));
stream1.write_some(buffer(const_char_buffer));
@@ -123,11 +176,17 @@ void test()
stream1.async_write_some(buffer(mutable_char_buffer), write_some_handler);
stream1.async_write_some(buffer(const_char_buffer), write_some_handler);
+ int i8 = stream1.async_write_some(buffer(mutable_char_buffer), lazy);
+ (void)i8;
+ int i9 = stream1.async_write_some(buffer(const_char_buffer), lazy);
+ (void)i9;
stream1.read_some(buffer(mutable_char_buffer));
stream1.read_some(buffer(mutable_char_buffer), ec);
stream1.async_read_some(buffer(mutable_char_buffer), read_some_handler);
+ int i10 = stream1.async_read_some(buffer(mutable_char_buffer), lazy);
+ (void)i10;
#if defined(BOOST_ASIO_ENABLE_OLD_SSL)
stream1.peek(buffer(mutable_char_buffer));
@@ -148,9 +207,8 @@ void test()
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ssl/stream");
- test->add(BOOST_TEST_CASE(&ssl_stream_compile::test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ssl/stream",
+ BOOST_ASIO_TEST_CASE(ssl_stream_compile::test)
+)
diff --git a/libs/asio/test/ssl/stream_base.cpp b/libs/asio/test/ssl/stream_base.cpp
index 320acd6676..06a86dffd1 100644
--- a/libs/asio/test/ssl/stream_base.cpp
+++ b/libs/asio/test/ssl/stream_base.cpp
@@ -2,7 +2,7 @@
// stream_base.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ssl/stream_base");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ssl/stream_base",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/ssl/stream_service.cpp b/libs/asio/test/ssl/stream_service.cpp
index b4838b78de..b24aea9104 100644
--- a/libs/asio/test/ssl/stream_service.cpp
+++ b/libs/asio/test/ssl/stream_service.cpp
@@ -2,7 +2,7 @@
// stream_service.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("ssl/stream_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "ssl/stream_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/steady_timer.cpp b/libs/asio/test/steady_timer.cpp
index 74dffcd2ce..8f914da772 100644
--- a/libs/asio/test/steady_timer.cpp
+++ b/libs/asio/test/steady_timer.cpp
@@ -2,7 +2,7 @@
// steady_timer.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -23,9 +23,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("steady_timer");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "steady_timer",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/strand.cpp b/libs/asio/test/strand.cpp
index a8c642fd71..be0cb8f44f 100644
--- a/libs/asio/test/strand.cpp
+++ b/libs/asio/test/strand.cpp
@@ -2,7 +2,7 @@
// strand.cpp
// ~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -17,13 +17,41 @@
#include <boost/asio/strand.hpp>
#include <sstream>
-#include <boost/thread/thread.hpp>
-#include <boost/bind.hpp>
-#include <boost/asio/deadline_timer.hpp>
#include <boost/asio/io_service.hpp>
+#include <boost/asio/detail/thread.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
+# include <boost/asio/deadline_timer.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
+# include <boost/asio/steady_timer.hpp>
+#endif // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
+
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
using namespace boost::asio;
+typedef io_service::strand strand;
+
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+namespace bindns = std;
+#endif
+
+#if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
+typedef deadline_timer timer;
+namespace chronons = boost::posix_time;
+#elif defined(BOOST_ASIO_HAS_STD_CHRONO)
+typedef steady_timer timer;
+namespace chronons = std::chrono;
+#elif defined(BOOST_ASIO_HAS_BOOST_CHRONO)
+typedef steady_timer timer;
+namespace chronons = boost::chrono;
+#endif // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
void increment(int* count)
{
@@ -32,29 +60,33 @@ void increment(int* count)
void increment_without_lock(strand* s, int* count)
{
+ BOOST_ASIO_CHECK(!s->running_in_this_thread());
+
int original_count = *count;
- s->dispatch(boost::bind(increment, count));
+ s->dispatch(bindns::bind(increment, count));
// No other functions are currently executing through the locking dispatcher,
// so the previous call to dispatch should have successfully nested.
- BOOST_CHECK(*count == original_count + 1);
+ BOOST_ASIO_CHECK(*count == original_count + 1);
}
void increment_with_lock(strand* s, int* count)
{
+ BOOST_ASIO_CHECK(s->running_in_this_thread());
+
int original_count = *count;
- s->dispatch(boost::bind(increment, count));
+ s->dispatch(bindns::bind(increment, count));
// The current function already holds the strand's lock, so the
// previous call to dispatch should have successfully nested.
- BOOST_CHECK(*count == original_count + 1);
+ BOOST_ASIO_CHECK(*count == original_count + 1);
}
void sleep_increment(io_service* ios, int* count)
{
- deadline_timer t(*ios, boost::posix_time::seconds(2));
+ timer t(*ios, chronons::seconds(2));
t.wait();
++(*count);
@@ -63,13 +95,13 @@ void sleep_increment(io_service* ios, int* count)
void start_sleep_increments(io_service* ios, strand* s, int* count)
{
// Give all threads a chance to start.
- deadline_timer t(*ios, boost::posix_time::seconds(2));
+ timer t(*ios, chronons::seconds(2));
t.wait();
// Start three increments.
- s->post(boost::bind(sleep_increment, ios, count));
- s->post(boost::bind(sleep_increment, ios, count));
- s->post(boost::bind(sleep_increment, ios, count));
+ s->post(bindns::bind(sleep_increment, ios, count));
+ s->post(bindns::bind(sleep_increment, ios, count));
+ s->post(bindns::bind(sleep_increment, ios, count));
}
void throw_exception()
@@ -88,63 +120,63 @@ void strand_test()
strand s(ios);
int count = 0;
- ios.post(boost::bind(increment_without_lock, &s, &count));
+ ios.post(bindns::bind(increment_without_lock, &s, &count));
// No handlers can be called until run() is called.
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(count == 0);
ios.run();
// The run() call will not return until all work has finished.
- BOOST_CHECK(count == 1);
+ BOOST_ASIO_CHECK(count == 1);
count = 0;
ios.reset();
- s.post(boost::bind(increment_with_lock, &s, &count));
+ s.post(bindns::bind(increment_with_lock, &s, &count));
// No handlers can be called until run() is called.
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(count == 0);
ios.run();
// The run() call will not return until all work has finished.
- BOOST_CHECK(count == 1);
+ BOOST_ASIO_CHECK(count == 1);
count = 0;
ios.reset();
- ios.post(boost::bind(start_sleep_increments, &ios, &s, &count));
- boost::thread thread1(boost::bind(io_service_run, &ios));
- boost::thread thread2(boost::bind(io_service_run, &ios));
+ ios.post(bindns::bind(start_sleep_increments, &ios, &s, &count));
+ boost::asio::detail::thread thread1(bindns::bind(io_service_run, &ios));
+ boost::asio::detail::thread thread2(bindns::bind(io_service_run, &ios));
// Check all events run one after another even though there are two threads.
- deadline_timer timer1(ios, boost::posix_time::seconds(3));
+ timer timer1(ios, chronons::seconds(3));
timer1.wait();
- BOOST_CHECK(count == 0);
- timer1.expires_at(timer1.expires_at() + boost::posix_time::seconds(2));
+ BOOST_ASIO_CHECK(count == 0);
+ timer1.expires_at(timer1.expires_at() + chronons::seconds(2));
timer1.wait();
- BOOST_CHECK(count == 1);
- timer1.expires_at(timer1.expires_at() + boost::posix_time::seconds(2));
+ BOOST_ASIO_CHECK(count == 1);
+ timer1.expires_at(timer1.expires_at() + chronons::seconds(2));
timer1.wait();
- BOOST_CHECK(count == 2);
+ BOOST_ASIO_CHECK(count == 2);
thread1.join();
thread2.join();
// The run() calls will not return until all work has finished.
- BOOST_CHECK(count == 3);
+ BOOST_ASIO_CHECK(count == 3);
count = 0;
int exception_count = 0;
ios.reset();
s.post(throw_exception);
- s.post(boost::bind(increment, &count));
- s.post(boost::bind(increment, &count));
+ s.post(bindns::bind(increment, &count));
+ s.post(bindns::bind(increment, &count));
s.post(throw_exception);
- s.post(boost::bind(increment, &count));
+ s.post(bindns::bind(increment, &count));
// No handlers can be called until run() is called.
- BOOST_CHECK(count == 0);
- BOOST_CHECK(exception_count == 0);
+ BOOST_ASIO_CHECK(count == 0);
+ BOOST_ASIO_CHECK(exception_count == 0);
for (;;)
{
@@ -160,8 +192,8 @@ void strand_test()
}
// The run() calls will not return until all work has finished.
- BOOST_CHECK(count == 3);
- BOOST_CHECK(exception_count == 2);
+ BOOST_ASIO_CHECK(count == 3);
+ BOOST_ASIO_CHECK(exception_count == 2);
count = 0;
ios.reset();
@@ -170,18 +202,17 @@ void strand_test()
// are abandoned.
{
strand s2(ios);
- s2.post(boost::bind(increment, &count));
- s2.post(boost::bind(increment, &count));
- s2.post(boost::bind(increment, &count));
+ s2.post(bindns::bind(increment, &count));
+ s2.post(bindns::bind(increment, &count));
+ s2.post(bindns::bind(increment, &count));
}
// No handlers can be called until run() is called.
- BOOST_CHECK(count == 0);
+ BOOST_ASIO_CHECK(count == 0);
}
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("strand");
- test->add(BOOST_TEST_CASE(&strand_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "strand",
+ BOOST_ASIO_TEST_CASE(strand_test)
+)
diff --git a/libs/asio/test/stream_socket_service.cpp b/libs/asio/test/stream_socket_service.cpp
index 8e1d81b166..4faa1a6bc3 100644
--- a/libs/asio/test/stream_socket_service.cpp
+++ b/libs/asio/test/stream_socket_service.cpp
@@ -2,7 +2,7 @@
// stream_socket_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("stream_socket_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "stream_socket_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/streambuf.cpp b/libs/asio/test/streambuf.cpp
index 983a617121..b165ee937f 100644
--- a/libs/asio/test/streambuf.cpp
+++ b/libs/asio/test/streambuf.cpp
@@ -2,7 +2,7 @@
// streambuf.cpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -25,39 +25,38 @@ void streambuf_test()
sb.sputn("abcd", 4);
- BOOST_CHECK(sb.size() == 4);
+ BOOST_ASIO_CHECK(sb.size() == 4);
for (int i = 0; i < 100; ++i)
{
sb.consume(3);
- BOOST_CHECK(sb.size() == 1);
+ BOOST_ASIO_CHECK(sb.size() == 1);
char buf[1];
sb.sgetn(buf, 1);
- BOOST_CHECK(sb.size() == 0);
+ BOOST_ASIO_CHECK(sb.size() == 0);
sb.sputn("ab", 2);
- BOOST_CHECK(sb.size() == 2);
+ BOOST_ASIO_CHECK(sb.size() == 2);
boost::asio::buffer_copy(sb.prepare(10), boost::asio::buffer("cd", 2));
sb.commit(2);
- BOOST_CHECK(sb.size() == 4);
+ BOOST_ASIO_CHECK(sb.size() == 4);
}
- BOOST_CHECK(sb.size() == 4);
+ BOOST_ASIO_CHECK(sb.size() == 4);
sb.consume(4);
- BOOST_CHECK(sb.size() == 0);
+ BOOST_ASIO_CHECK(sb.size() == 0);
}
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("streambuf");
- test->add(BOOST_TEST_CASE(&streambuf_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "streambuf",
+ BOOST_ASIO_TEST_CASE(streambuf_test)
+)
diff --git a/libs/asio/test/system_timer.cpp b/libs/asio/test/system_timer.cpp
index c74f0636dd..de25a4694e 100644
--- a/libs/asio/test/system_timer.cpp
+++ b/libs/asio/test/system_timer.cpp
@@ -2,7 +2,7 @@
// system_timer.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -23,9 +23,337 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
+#if defined(BOOST_ASIO_HAS_STD_CHRONO)
+
+#include <boost/asio/io_service.hpp>
+#include <boost/asio/detail/thread.hpp>
+
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+namespace bindns = std;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+namespace chronons = std::chrono;
+
+void increment(int* count)
+{
+ ++(*count);
+}
+
+void decrement_to_zero(boost::asio::system_timer* t, int* count)
+{
+ if (*count > 0)
+ {
+ --(*count);
+
+ int before_value = *count;
+
+ t->expires_at(t->expires_at() + chronons::seconds(1));
+ t->async_wait(bindns::bind(decrement_to_zero, t, count));
+
+ // Completion cannot nest, so count value should remain unchanged.
+ BOOST_ASIO_CHECK(*count == before_value);
+ }
+}
+
+void increment_if_not_cancelled(int* count,
+ const boost::system::error_code& ec)
+{
+ if (!ec)
+ ++(*count);
+}
+
+void cancel_timer(boost::asio::system_timer* t)
+{
+ std::size_t num_cancelled = t->cancel();
+ BOOST_ASIO_CHECK(num_cancelled == 1);
+}
+
+void cancel_one_timer(boost::asio::system_timer* t)
+{
+ std::size_t num_cancelled = t->cancel_one();
+ BOOST_ASIO_CHECK(num_cancelled == 1);
+}
+
+boost::asio::system_timer::time_point now()
+{
+ return boost::asio::system_timer::clock_type::now();
+}
+
+void system_timer_test()
+{
+ using chronons::seconds;
+ using chronons::microseconds;
+#if !defined(BOOST_ASIO_HAS_BOOST_BIND)
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // !defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+ boost::asio::io_service ios;
+ int count = 0;
+
+ boost::asio::system_timer::time_point start = now();
+
+ boost::asio::system_timer t1(ios, seconds(1));
+ t1.wait();
+
+ // The timer must block until after its expiry time.
+ boost::asio::system_timer::time_point end = now();
+ boost::asio::system_timer::time_point expected_end = start + seconds(1);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
+
+ start = now();
+
+ boost::asio::system_timer t2(ios, seconds(1) + microseconds(500000));
+ t2.wait();
+
+ // The timer must block until after its expiry time.
+ end = now();
+ expected_end = start + seconds(1) + microseconds(500000);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
+
+ t2.expires_at(t2.expires_at() + seconds(1));
+ t2.wait();
+
+ // The timer must block until after its expiry time.
+ end = now();
+ expected_end += seconds(1);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
+
+ start = now();
+
+ t2.expires_from_now(seconds(1) + microseconds(200000));
+ t2.wait();
+
+ // The timer must block until after its expiry time.
+ end = now();
+ expected_end = start + seconds(1) + microseconds(200000);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
+
+ start = now();
+
+ boost::asio::system_timer t3(ios, seconds(5));
+ t3.async_wait(bindns::bind(increment, &count));
+
+ // No completions can be delivered until run() is called.
+ BOOST_ASIO_CHECK(count == 0);
+
+ ios.run();
+
+ // The run() call will not return until all operations have finished, and
+ // this should not be until after the timer's expiry time.
+ BOOST_ASIO_CHECK(count == 1);
+ end = now();
+ expected_end = start + seconds(1);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
+
+ count = 3;
+ start = now();
+
+ boost::asio::system_timer t4(ios, seconds(1));
+ t4.async_wait(bindns::bind(decrement_to_zero, &t4, &count));
+
+ // No completions can be delivered until run() is called.
+ BOOST_ASIO_CHECK(count == 3);
+
+ ios.reset();
+ ios.run();
+
+ // The run() call will not return until all operations have finished, and
+ // this should not be until after the timer's final expiry time.
+ BOOST_ASIO_CHECK(count == 0);
+ end = now();
+ expected_end = start + seconds(3);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
+
+ count = 0;
+ start = now();
+
+ boost::asio::system_timer t5(ios, seconds(10));
+ t5.async_wait(bindns::bind(increment_if_not_cancelled, &count, _1));
+ boost::asio::system_timer t6(ios, seconds(1));
+ t6.async_wait(bindns::bind(cancel_timer, &t5));
+
+ // No completions can be delivered until run() is called.
+ BOOST_ASIO_CHECK(count == 0);
+
+ ios.reset();
+ ios.run();
+
+ // The timer should have been cancelled, so count should not have changed.
+ // The total run time should not have been much more than 1 second (and
+ // certainly far less than 10 seconds).
+ BOOST_ASIO_CHECK(count == 0);
+ end = now();
+ expected_end = start + seconds(2);
+ BOOST_ASIO_CHECK(end < expected_end);
+
+ // Wait on the timer again without cancelling it. This time the asynchronous
+ // wait should run to completion and increment the counter.
+ t5.async_wait(bindns::bind(increment_if_not_cancelled, &count, _1));
+
+ ios.reset();
+ ios.run();
+
+ // The timer should not have been cancelled, so count should have changed.
+ // The total time since the timer was created should be more than 10 seconds.
+ BOOST_ASIO_CHECK(count == 1);
+ end = now();
+ expected_end = start + seconds(10);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
+
+ count = 0;
+ start = now();
+
+ // Start two waits on a timer, one of which will be cancelled. The one
+ // which is not cancelled should still run to completion and increment the
+ // counter.
+ boost::asio::system_timer t7(ios, seconds(3));
+ t7.async_wait(bindns::bind(increment_if_not_cancelled, &count, _1));
+ t7.async_wait(bindns::bind(increment_if_not_cancelled, &count, _1));
+ boost::asio::system_timer t8(ios, seconds(1));
+ t8.async_wait(bindns::bind(cancel_one_timer, &t7));
+
+ ios.reset();
+ ios.run();
+
+ // One of the waits should not have been cancelled, so count should have
+ // changed. The total time since the timer was created should be more than 3
+ // seconds.
+ BOOST_ASIO_CHECK(count == 1);
+ end = now();
+ expected_end = start + seconds(3);
+ BOOST_ASIO_CHECK(expected_end < end || expected_end == end);
+}
+
+void timer_handler(const boost::system::error_code&)
+{
+}
+
+void system_timer_cancel_test()
+{
+ static boost::asio::io_service io_service;
+ struct timer
+ {
+ boost::asio::system_timer t;
+ timer() : t(io_service)
+ {
+ t.expires_at((boost::asio::system_timer::time_point::max)());
+ }
+ } timers[50];
+
+ timers[2].t.async_wait(&timer_handler);
+ timers[41].t.async_wait(&timer_handler);
+ for (int i = 10; i < 20; ++i)
+ timers[i].t.async_wait(&timer_handler);
+
+ BOOST_ASIO_CHECK(timers[2].t.cancel() == 1);
+ BOOST_ASIO_CHECK(timers[41].t.cancel() == 1);
+ for (int i = 10; i < 20; ++i)
+ BOOST_ASIO_CHECK(timers[i].t.cancel() == 1);
+}
+
+struct custom_allocation_timer_handler
{
- test_suite* test = BOOST_TEST_SUITE("system_timer");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
+ custom_allocation_timer_handler(int* count) : count_(count) {}
+ void operator()(const boost::system::error_code&) {}
+ int* count_;
+};
+
+void* asio_handler_allocate(std::size_t size,
+ custom_allocation_timer_handler* handler)
+{
+ ++(*handler->count_);
+ return ::operator new(size);
}
+
+void asio_handler_deallocate(void* pointer, std::size_t,
+ custom_allocation_timer_handler* handler)
+{
+ --(*handler->count_);
+ ::operator delete(pointer);
+}
+
+void system_timer_custom_allocation_test()
+{
+ static boost::asio::io_service io_service;
+ struct timer
+ {
+ boost::asio::system_timer t;
+ timer() : t(io_service) {}
+ } timers[100];
+
+ int allocation_count = 0;
+
+ for (int i = 0; i < 50; ++i)
+ {
+ timers[i].t.expires_at((boost::asio::system_timer::time_point::max)());
+ timers[i].t.async_wait(custom_allocation_timer_handler(&allocation_count));
+ }
+
+ for (int i = 50; i < 100; ++i)
+ {
+ timers[i].t.expires_at((boost::asio::system_timer::time_point::min)());
+ timers[i].t.async_wait(custom_allocation_timer_handler(&allocation_count));
+ }
+
+ for (int i = 0; i < 50; ++i)
+ timers[i].t.cancel();
+
+ io_service.run();
+
+ BOOST_ASIO_CHECK(allocation_count == 0);
+}
+
+void io_service_run(boost::asio::io_service* ios)
+{
+ ios->run();
+}
+
+void system_timer_thread_test()
+{
+ boost::asio::io_service ios;
+ boost::asio::io_service::work w(ios);
+ boost::asio::system_timer t1(ios);
+ boost::asio::system_timer t2(ios);
+ int count = 0;
+
+ boost::asio::detail::thread th(bindns::bind(io_service_run, &ios));
+
+ t2.expires_from_now(chronons::seconds(2));
+ t2.wait();
+
+ t1.expires_from_now(chronons::seconds(2));
+ t1.async_wait(bindns::bind(increment, &count));
+
+ t2.expires_from_now(chronons::seconds(4));
+ t2.wait();
+
+ ios.stop();
+ th.join();
+
+ BOOST_ASIO_CHECK(count == 1);
+}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "system_timer",
+ BOOST_ASIO_TEST_CASE(system_timer_test)
+ BOOST_ASIO_TEST_CASE(system_timer_cancel_test)
+ BOOST_ASIO_TEST_CASE(system_timer_custom_allocation_test)
+ BOOST_ASIO_TEST_CASE(system_timer_thread_test)
+)
+#else // defined(BOOST_ASIO_HAS_STD_CHRONO)
+BOOST_ASIO_TEST_SUITE
+(
+ "system_timer",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
+#endif // defined(BOOST_ASIO_HAS_STD_CHRONO)
diff --git a/libs/asio/test/time_traits.cpp b/libs/asio/test/time_traits.cpp
index 7a9d544847..f764dc3796 100644
--- a/libs/asio/test/time_traits.cpp
+++ b/libs/asio/test/time_traits.cpp
@@ -2,7 +2,7 @@
// time_traits.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("time_traits");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "time_traits",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/unit_test.hpp b/libs/asio/test/unit_test.hpp
index c1d469f86b..8f780b17bb 100644
--- a/libs/asio/test/unit_test.hpp
+++ b/libs/asio/test/unit_test.hpp
@@ -2,7 +2,7 @@
// unit_test.hpp
// ~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -11,7 +11,7 @@
#ifndef UNIT_TEST_HPP
#define UNIT_TEST_HPP
-#include <boost/config.hpp>
+#include <boost/asio/detail/config.hpp>
#if defined(__sun)
# include <stdlib.h> // Needed for lrand48.
@@ -28,21 +28,97 @@
#endif // defined(__BORLANDC__)
-#if defined(BOOST_MSVC)
+#if defined(BOOST_ASIO_MSVC)
# pragma warning (push)
# pragma warning (disable:4244)
# pragma warning (disable:4702)
-#endif // defined(BOOST_MSVC)
+#endif // defined(BOOST_ASIO_MSVC)
+
+#if defined(BOOST_ASIO_STANDALONE)
+
+#include <cassert>
+#include <iostream>
+
+#if defined(NDEBUG)
+# error NDEBUG must not be defined when building these unit tests
+#endif // defined(NDEBUG)
+
+#define BOOST_ASIO_CHECK(expr) assert(expr)
+
+#define BOOST_ASIO_CHECK_MESSAGE(expr, msg) \
+ do { if (!(expr)) { std::cout << msg << std::endl; assert(expr); } } while (0)
+
+#define BOOST_ASIO_WARN_MESSAGE(expr, msg) \
+ do { if (!(expr)) { std::cout << msg << std::endl; } } while (0)
+
+#define BOOST_ASIO_ERROR(msg) assert(0 && msg)
+
+#define BOOST_ASIO_TEST_SUITE(name, tests) \
+ int main() \
+ { \
+ std::cout << name << " test suite begins" << std::endl; \
+ tests \
+ std::cout << name << " test suite ends" << std::endl; \
+ return 0; \
+ }
+
+#define BOOST_ASIO_TEST_CASE(test) \
+ test(); \
+ std::cout << #test << " passed" << std::endl;
+
+#define BOOST_ASIO_COMPILE_TEST_CASE(test) \
+ compile_test<&test>(); \
+ std::cout << #test << " passed" << std::endl;
+
+#else // defined(BOOST_ASIO_STANDALONE)
#include <boost/test/unit_test.hpp>
using boost::unit_test::test_suite;
-#if defined(BOOST_MSVC)
+#define BOOST_ASIO_CHECK(expr) BOOST_CHECK(expr)
+
+#define BOOST_ASIO_CHECK_MESSAGE(expr, msg) BOOST_CHECK_MESSAGE(expr, msg)
+
+#define BOOST_ASIO_WARN_MESSAGE(expr, msg) BOOST_WARN_MESSAGE(expr, msg)
+
+#define BOOST_ASIO_ERROR(expr) BOOST_ERROR(expr)
+
+#define BOOST_ASIO_TEST_SUITE(name, tests) \
+ test_suite* init_unit_test_suite(int, char*[]) \
+ { \
+ test_suite* t = BOOST_TEST_SUITE(name); \
+ tests \
+ return t; \
+ }
+
+#define BOOST_ASIO_TEST_CASE(test) \
+ t->add(BOOST_TEST_CASE(&test));
+
+#define BOOST_ASIO_COMPILE_TEST_CASE(test) \
+ t->add(BOOST_TEST_CASE(&compile_test<&test>));
+
+#endif // defined(BOOST_ASIO_STANDALONE)
+
+#if defined(BOOST_ASIO_MSVC)
# pragma warning (pop)
-#endif // defined(BOOST_MSVC)
+#endif // defined(BOOST_ASIO_MSVC)
inline void null_test()
{
}
+template <void (*)()>
+inline void compile_test()
+{
+}
+
+#if defined(__GNUC__) && defined(_AIX)
+
+// AIX needs this symbol defined in asio, even if it doesn't do anything.
+int test_main(int, char**)
+{
+}
+
+#endif // defined(__GNUC__) && defined(_AIX)
+
#endif // UNIT_TEST_HPP
diff --git a/libs/asio/test/wait_traits.cpp b/libs/asio/test/wait_traits.cpp
index 74a4f0d9ba..bbf46cb2f1 100644
--- a/libs/asio/test/wait_traits.cpp
+++ b/libs/asio/test/wait_traits.cpp
@@ -2,7 +2,7 @@
// wait_traits.cpp
// ~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("wait_traits");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "wait_traits",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/waitable_timer_service.cpp b/libs/asio/test/waitable_timer_service.cpp
index 4b5b2e314f..4b73307be5 100644
--- a/libs/asio/test/waitable_timer_service.cpp
+++ b/libs/asio/test/waitable_timer_service.cpp
@@ -2,7 +2,7 @@
// waitable_timer_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -18,9 +18,8 @@
#include "unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("waitable_timer_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "waitable_timer_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/windows/basic_handle.cpp b/libs/asio/test/windows/basic_handle.cpp
index 273d6e2669..803ecd015f 100644
--- a/libs/asio/test/windows/basic_handle.cpp
+++ b/libs/asio/test/windows/basic_handle.cpp
@@ -2,7 +2,7 @@
// basic_handle.cpp
// ~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -19,9 +19,8 @@
#include <boost/asio.hpp>
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("windows/basic_handle");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "windows/basic_handle",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/windows/basic_object_handle.cpp b/libs/asio/test/windows/basic_object_handle.cpp
index 98b7b94de5..d67a0f0251 100644
--- a/libs/asio/test/windows/basic_object_handle.cpp
+++ b/libs/asio/test/windows/basic_object_handle.cpp
@@ -2,7 +2,7 @@
// basic_object_handle.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -19,9 +19,8 @@
#include <boost/asio.hpp>
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("windows/basic_object_handle");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "windows/basic_object_handle",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/windows/basic_random_access_handle.cpp b/libs/asio/test/windows/basic_random_access_handle.cpp
index e7d7b437e7..d6e9a601b6 100644
--- a/libs/asio/test/windows/basic_random_access_handle.cpp
+++ b/libs/asio/test/windows/basic_random_access_handle.cpp
@@ -2,7 +2,7 @@
// basic_random_access_handle.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -19,9 +19,8 @@
#include <boost/asio.hpp>
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("windows/basic_random_access_handle");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "windows/basic_random_access_handle",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/windows/basic_stream_handle.cpp b/libs/asio/test/windows/basic_stream_handle.cpp
index 77dbdc962f..8ccc828b95 100644
--- a/libs/asio/test/windows/basic_stream_handle.cpp
+++ b/libs/asio/test/windows/basic_stream_handle.cpp
@@ -2,7 +2,7 @@
// basic_stream_handle.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -19,9 +19,8 @@
#include <boost/asio.hpp>
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("windows/basic_stream_handle");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "windows/basic_stream_handle",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/windows/object_handle.cpp b/libs/asio/test/windows/object_handle.cpp
index 484a5aa556..6bb797140c 100644
--- a/libs/asio/test/windows/object_handle.cpp
+++ b/libs/asio/test/windows/object_handle.cpp
@@ -2,7 +2,7 @@
// object_handle.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -17,6 +17,7 @@
#include <boost/asio/windows/object_handle.hpp>
#include <boost/asio/io_service.hpp>
+#include "../archetypes/async_result.hpp"
#include "../unit_test.hpp"
//------------------------------------------------------------------------------
@@ -42,6 +43,7 @@ void test()
try
{
io_service ios;
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
// basic_object_handle constructors.
@@ -99,6 +101,8 @@ void test()
handle1.wait(ec);
handle1.async_wait(&wait_handler);
+ int i1 = handle1.async_wait(lazy);
+ (void)i1;
}
catch (std::exception&)
{
@@ -109,9 +113,9 @@ void test()
} // namespace windows_object_handle_compile
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("windows/object_handle");
- test->add(BOOST_TEST_CASE(&windows_object_handle_compile::test));
- return test;
-}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "windows/object_handle",
+ BOOST_ASIO_TEST_CASE(windows_object_handle_compile::test)
+)
diff --git a/libs/asio/test/windows/object_handle_service.cpp b/libs/asio/test/windows/object_handle_service.cpp
index 1e72e028a9..c16b6c556e 100644
--- a/libs/asio/test/windows/object_handle_service.cpp
+++ b/libs/asio/test/windows/object_handle_service.cpp
@@ -2,7 +2,7 @@
// object_handle_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -19,9 +19,8 @@
#include <boost/asio.hpp>
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("windows/object_handle_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "windows/object_handle_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/windows/overlapped_ptr.cpp b/libs/asio/test/windows/overlapped_ptr.cpp
index 68245e25c2..c6d2dd08f9 100644
--- a/libs/asio/test/windows/overlapped_ptr.cpp
+++ b/libs/asio/test/windows/overlapped_ptr.cpp
@@ -2,7 +2,7 @@
// overlapped_ptr.cpp
// ~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -87,9 +87,9 @@ void test()
} // namespace windows_overlapped_ptr_compile
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("windows/overlapped_ptr");
- test->add(BOOST_TEST_CASE(&windows_overlapped_ptr_compile::test));
- return test;
-}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "windows/overlapped_ptr",
+ BOOST_ASIO_TEST_CASE(windows_overlapped_ptr_compile::test)
+)
diff --git a/libs/asio/test/windows/random_access_handle.cpp b/libs/asio/test/windows/random_access_handle.cpp
index 3fde0fba58..34974e5378 100644
--- a/libs/asio/test/windows/random_access_handle.cpp
+++ b/libs/asio/test/windows/random_access_handle.cpp
@@ -2,7 +2,7 @@
// random_access_handle.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -17,6 +17,7 @@
#include <boost/asio/windows/random_access_handle.hpp>
#include <boost/asio/io_service.hpp>
+#include "../archetypes/async_result.hpp"
#include "../unit_test.hpp"
//------------------------------------------------------------------------------
@@ -48,7 +49,8 @@ void test()
io_service ios;
char mutable_char_buffer[128] = "";
const char const_char_buffer[128] = "";
- boost::uint64_t offset = 0;
+ boost::asio::uint64_t offset = 0;
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
// basic_random_access_handle constructors.
@@ -114,12 +116,21 @@ void test()
buffer(mutable_char_buffer), &write_some_handler);
handle1.async_write_some_at(offset,
buffer(const_char_buffer), &write_some_handler);
+ int i1 = handle1.async_write_some_at(offset,
+ buffer(mutable_char_buffer), lazy);
+ (void)i1;
+ int i2 = handle1.async_write_some_at(offset,
+ buffer(const_char_buffer), lazy);
+ (void)i2;
handle1.read_some_at(offset, buffer(mutable_char_buffer));
handle1.read_some_at(offset, buffer(mutable_char_buffer), ec);
handle1.async_read_some_at(offset,
buffer(mutable_char_buffer), &read_some_handler);
+ int i3 = handle1.async_read_some_at(offset,
+ buffer(mutable_char_buffer), lazy);
+ (void)i3;
}
catch (std::exception&)
{
@@ -130,9 +141,9 @@ void test()
} // namespace windows_random_access_handle_compile
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("windows/random_access_handle");
- test->add(BOOST_TEST_CASE(&windows_random_access_handle_compile::test));
- return test;
-}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "windows/random_access_handle",
+ BOOST_ASIO_TEST_CASE(windows_random_access_handle_compile::test)
+)
diff --git a/libs/asio/test/windows/random_access_handle_service.cpp b/libs/asio/test/windows/random_access_handle_service.cpp
index 865d790308..5ef6e2d1d0 100644
--- a/libs/asio/test/windows/random_access_handle_service.cpp
+++ b/libs/asio/test/windows/random_access_handle_service.cpp
@@ -2,7 +2,7 @@
// random_access_handle_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -19,9 +19,8 @@
#include <boost/asio.hpp>
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("windows/random_access_handle_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "windows/random_access_handle_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/windows/stream_handle.cpp b/libs/asio/test/windows/stream_handle.cpp
index a49046cb97..0bf18a9a84 100644
--- a/libs/asio/test/windows/stream_handle.cpp
+++ b/libs/asio/test/windows/stream_handle.cpp
@@ -2,7 +2,7 @@
// stream_handle.cpp
// ~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -17,6 +17,7 @@
#include <boost/asio/windows/stream_handle.hpp>
#include <boost/asio/io_service.hpp>
+#include "../archetypes/async_result.hpp"
#include "../unit_test.hpp"
//------------------------------------------------------------------------------
@@ -48,6 +49,7 @@ void test()
io_service ios;
char mutable_char_buffer[128] = "";
const char const_char_buffer[128] = "";
+ archetypes::lazy_handler lazy;
boost::system::error_code ec;
// basic_stream_handle constructors.
@@ -111,11 +113,17 @@ void test()
handle1.async_write_some(buffer(mutable_char_buffer), &write_some_handler);
handle1.async_write_some(buffer(const_char_buffer), &write_some_handler);
+ int i1 = handle1.async_write_some(buffer(mutable_char_buffer), lazy);
+ (void)i1;
+ int i2 = handle1.async_write_some(buffer(const_char_buffer), lazy);
+ (void)i2;
handle1.read_some(buffer(mutable_char_buffer));
handle1.read_some(buffer(mutable_char_buffer), ec);
handle1.async_read_some(buffer(mutable_char_buffer), &read_some_handler);
+ int i3 = handle1.async_read_some(buffer(mutable_char_buffer), lazy);
+ (void)i3;
}
catch (std::exception&)
{
@@ -126,9 +134,9 @@ void test()
} // namespace windows_stream_handle_compile
//------------------------------------------------------------------------------
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("windows/stream_handle");
- test->add(BOOST_TEST_CASE(&windows_stream_handle_compile::test));
- return test;
-}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "windows/stream_handle",
+ BOOST_ASIO_TEST_CASE(windows_stream_handle_compile::test)
+)
diff --git a/libs/asio/test/windows/stream_handle_service.cpp b/libs/asio/test/windows/stream_handle_service.cpp
index 8e7fb17a59..a7184c71ff 100644
--- a/libs/asio/test/windows/stream_handle_service.cpp
+++ b/libs/asio/test/windows/stream_handle_service.cpp
@@ -2,7 +2,7 @@
// stream_handle_service.cpp
// ~~~~~~~~~~~~~~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -19,9 +19,8 @@
#include <boost/asio.hpp>
#include "../unit_test.hpp"
-test_suite* init_unit_test_suite(int, char*[])
-{
- test_suite* test = BOOST_TEST_SUITE("windows/stream_handle_service");
- test->add(BOOST_TEST_CASE(&null_test));
- return test;
-}
+BOOST_ASIO_TEST_SUITE
+(
+ "windows/stream_handle_service",
+ BOOST_ASIO_TEST_CASE(null_test)
+)
diff --git a/libs/asio/test/write.cpp b/libs/asio/test/write.cpp
index 9a364c3e38..6063b74d86 100644
--- a/libs/asio/test/write.cpp
+++ b/libs/asio/test/write.cpp
@@ -2,7 +2,7 @@
// write.cpp
// ~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,22 +16,30 @@
// Test that header file is self-contained.
#include <boost/asio/write.hpp>
-#if defined(BOOST_ASIO_HAS_STD_ARRAY)
-# include <array>
-#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
-#include <boost/array.hpp>
-#include <boost/bind.hpp>
-#include <boost/noncopyable.hpp>
#include <cstring>
#include <vector>
+#include "archetypes/async_result.hpp"
#include <boost/asio/io_service.hpp>
-#include <boost/asio/placeholders.hpp>
+#include <boost/asio/streambuf.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+#include <boost/array.hpp>
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+#if defined(BOOST_ASIO_HAS_STD_ARRAY)
+# include <array>
+#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
+
using namespace std; // For memcmp, memcpy and memset.
class test_stream
- : private boost::noncopyable
{
public:
typedef boost::asio::io_service io_service_type;
@@ -52,7 +60,7 @@ public:
void reset(size_t length = max_length)
{
- BOOST_CHECK(length <= max_length);
+ BOOST_ASIO_CHECK(length <= max_length);
memset(data_, 0, max_length);
length_ = length;
@@ -134,7 +142,7 @@ void test_2_arg_zero_buffers_write()
std::vector<boost::asio::const_buffer> buffers;
size_t bytes_transferred = boost::asio::write(s, buffers);
- BOOST_CHECK(bytes_transferred == 0);
+ BOOST_ASIO_CHECK(bytes_transferred == 0);
}
void test_2_arg_const_buffers_1_write()
@@ -146,20 +154,20 @@ void test_2_arg_const_buffers_1_write()
s.reset();
size_t bytes_transferred = boost::asio::write(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
}
void test_2_arg_mutable_buffers_1_write()
@@ -171,20 +179,20 @@ void test_2_arg_mutable_buffers_1_write()
s.reset();
size_t bytes_transferred = boost::asio::write(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
}
void test_2_arg_vector_buffers_write()
@@ -197,20 +205,20 @@ void test_2_arg_vector_buffers_write()
s.reset();
size_t bytes_transferred = boost::asio::write(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
}
void test_3_arg_nothrow_zero_buffers_write()
@@ -221,8 +229,8 @@ void test_3_arg_nothrow_zero_buffers_write()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write(s, buffers, error);
- BOOST_CHECK(bytes_transferred == 0);
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 0);
+ BOOST_ASIO_CHECK(!error);
}
void test_3_arg_nothrow_const_buffers_1_write()
@@ -235,23 +243,23 @@ void test_3_arg_nothrow_const_buffers_1_write()
s.reset();
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_3_arg_nothrow_mutable_buffers_1_write()
@@ -264,23 +272,23 @@ void test_3_arg_nothrow_mutable_buffers_1_write()
s.reset();
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_3_arg_nothrow_vector_buffers_write()
@@ -294,23 +302,23 @@ void test_3_arg_nothrow_vector_buffers_write()
s.reset();
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
}
bool old_style_transfer_all(const boost::system::error_code& ec,
@@ -335,176 +343,176 @@ void test_3_arg_const_buffers_1_write()
s.reset();
size_t bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
}
void test_3_arg_mutable_buffers_1_write()
@@ -517,176 +525,176 @@ void test_3_arg_mutable_buffers_1_write()
s.reset();
size_t bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
bytes_transferred = boost::asio::write(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
}
void test_3_arg_vector_buffers_write()
@@ -700,176 +708,176 @@ void test_3_arg_vector_buffers_write()
s.reset();
size_t bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers, old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write(s, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
}
void test_4_arg_const_buffers_1_write()
@@ -883,230 +891,230 @@ void test_4_arg_const_buffers_1_write()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_4_arg_mutable_buffers_1_write()
@@ -1120,230 +1128,230 @@ void test_4_arg_mutable_buffers_1_write()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_4_arg_vector_buffers_write()
@@ -1358,242 +1366,250 @@ void test_4_arg_vector_buffers_write()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write(s, buffers, short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
}
void async_write_handler(const boost::system::error_code& e,
size_t bytes_transferred, size_t expected_bytes_transferred, bool* called)
{
*called = true;
- BOOST_CHECK(!e);
- BOOST_CHECK(bytes_transferred == expected_bytes_transferred);
+ BOOST_ASIO_CHECK(!e);
+ BOOST_ASIO_CHECK(bytes_transferred == expected_bytes_transferred);
}
void test_3_arg_const_buffers_1_async_write()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
boost::asio::const_buffers_1 buffers
@@ -1602,44 +1618,53 @@ void test_3_arg_const_buffers_1_async_write()
s.reset();
bool called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write(s, buffers, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
}
void test_3_arg_mutable_buffers_1_async_write()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
boost::asio::mutable_buffers_1 buffers
@@ -1648,44 +1673,54 @@ void test_3_arg_mutable_buffers_1_async_write()
s.reset();
bool called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write(s, buffers, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
}
void test_3_arg_boost_array_buffers_async_write()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
boost::asio::io_service ios;
test_stream s(ios);
boost::array<boost::asio::const_buffer, 2> buffers = { {
@@ -1695,44 +1730,54 @@ void test_3_arg_boost_array_buffers_async_write()
s.reset();
bool called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write(s, buffers, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
}
void test_3_arg_std_array_buffers_async_write()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
#if defined(BOOST_ASIO_HAS_STD_ARRAY)
boost::asio::io_service ios;
test_stream s(ios);
@@ -1743,45 +1788,54 @@ void test_3_arg_std_array_buffers_async_write()
s.reset();
bool called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write(s, buffers, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
}
void test_3_arg_vector_buffers_async_write()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
std::vector<boost::asio::const_buffer> buffers;
@@ -1791,44 +1845,117 @@ void test_3_arg_vector_buffers_async_write()
s.reset();
bool called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write(s, buffers, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+}
+
+void test_3_arg_streambuf_async_write()
+{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+ boost::asio::io_service ios;
+ test_stream s(ios);
+ boost::asio::streambuf sb;
+ boost::asio::const_buffers_1 buffers
+ = boost::asio::buffer(write_data, sizeof(write_data));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ bool called = false;
+ boost::asio::async_write(s, sb,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write(s, sb,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write(s, sb,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ int i = boost::asio::async_write(s, sb, archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
}
void test_4_arg_const_buffers_1_async_write()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
boost::asio::const_buffers_1 buffers
@@ -1837,348 +1964,310 @@ void test_4_arg_const_buffers_1_async_write()
s.reset();
bool called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write(s, buffers, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
}
void test_4_arg_mutable_buffers_1_async_write()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
boost::asio::mutable_buffers_1 buffers
@@ -2187,348 +2276,311 @@ void test_4_arg_mutable_buffers_1_async_write()
s.reset();
bool called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write(s, buffers, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
}
void test_4_arg_boost_array_buffers_async_write()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
boost::asio::io_service ios;
test_stream s(ios);
boost::array<boost::asio::const_buffer, 2> buffers = { {
@@ -2538,348 +2590,311 @@ void test_4_arg_boost_array_buffers_async_write()
s.reset();
bool called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write(s, buffers, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
}
void test_4_arg_std_array_buffers_async_write()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
#if defined(BOOST_ASIO_HAS_STD_ARRAY)
boost::asio::io_service ios;
test_stream s(ios);
@@ -2890,349 +2905,311 @@ void test_4_arg_std_array_buffers_async_write()
s.reset();
bool called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write(s, buffers, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
}
void test_4_arg_vector_buffers_async_write()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_stream s(ios);
std::vector<boost::asio::const_buffer> buffers;
@@ -3242,372 +3219,696 @@ void test_4_arg_vector_buffers_async_write()
s.reset();
bool called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
s.reset();
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
s.reset();
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write(s, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write(s, buffers, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
}
-test_suite* init_unit_test_suite(int, char*[])
+void test_4_arg_streambuf_async_write()
{
- test_suite* test = BOOST_TEST_SUITE("write");
- test->add(BOOST_TEST_CASE(&test_2_arg_zero_buffers_write));
- test->add(BOOST_TEST_CASE(&test_2_arg_const_buffers_1_write));
- test->add(BOOST_TEST_CASE(&test_2_arg_mutable_buffers_1_write));
- test->add(BOOST_TEST_CASE(&test_2_arg_vector_buffers_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_nothrow_zero_buffers_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_nothrow_const_buffers_1_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_nothrow_mutable_buffers_1_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_nothrow_vector_buffers_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_const_buffers_1_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_mutable_buffers_1_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_vector_buffers_write));
- test->add(BOOST_TEST_CASE(&test_4_arg_const_buffers_1_write));
- test->add(BOOST_TEST_CASE(&test_4_arg_mutable_buffers_1_write));
- test->add(BOOST_TEST_CASE(&test_4_arg_vector_buffers_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_const_buffers_1_async_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_mutable_buffers_1_async_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_boost_array_buffers_async_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_std_array_buffers_async_write));
- test->add(BOOST_TEST_CASE(&test_3_arg_vector_buffers_async_write));
- test->add(BOOST_TEST_CASE(&test_4_arg_const_buffers_1_async_write));
- test->add(BOOST_TEST_CASE(&test_4_arg_mutable_buffers_1_async_write));
- test->add(BOOST_TEST_CASE(&test_4_arg_boost_array_buffers_async_write));
- test->add(BOOST_TEST_CASE(&test_4_arg_std_array_buffers_async_write));
- test->add(BOOST_TEST_CASE(&test_4_arg_vector_buffers_async_write));
- return test;
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+ boost::asio::io_service ios;
+ test_stream s(ios);
+ boost::asio::streambuf sb;
+ boost::asio::const_buffers_1 buffers
+ = boost::asio::buffer(write_data, sizeof(write_data));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ bool called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_all(),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_all(),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_all(),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_at_least(1),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_at_least(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_at_least(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_at_least(10),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_at_least(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_at_least(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_at_least(42),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_at_least(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_at_least(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 50));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_exactly(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_exactly(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_exactly(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_exactly(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_exactly(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_exactly(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_exactly(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_exactly(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write(s, sb, boost::asio::transfer_exactly(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write(s, sb, old_style_transfer_all,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write(s, sb, old_style_transfer_all,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write(s, sb, old_style_transfer_all,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write(s, sb, short_transfer,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write(s, sb, short_transfer,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write(s, sb, short_transfer,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ int i = boost::asio::async_write(s, sb, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "write",
+ BOOST_ASIO_TEST_CASE(test_2_arg_zero_buffers_write)
+ BOOST_ASIO_TEST_CASE(test_2_arg_const_buffers_1_write)
+ BOOST_ASIO_TEST_CASE(test_2_arg_mutable_buffers_1_write)
+ BOOST_ASIO_TEST_CASE(test_2_arg_vector_buffers_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_nothrow_zero_buffers_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_nothrow_const_buffers_1_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_nothrow_mutable_buffers_1_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_nothrow_vector_buffers_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_const_buffers_1_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_mutable_buffers_1_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_vector_buffers_write)
+ BOOST_ASIO_TEST_CASE(test_4_arg_const_buffers_1_write)
+ BOOST_ASIO_TEST_CASE(test_4_arg_mutable_buffers_1_write)
+ BOOST_ASIO_TEST_CASE(test_4_arg_vector_buffers_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_const_buffers_1_async_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_mutable_buffers_1_async_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_boost_array_buffers_async_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_std_array_buffers_async_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_vector_buffers_async_write)
+ BOOST_ASIO_TEST_CASE(test_3_arg_streambuf_async_write)
+ BOOST_ASIO_TEST_CASE(test_4_arg_const_buffers_1_async_write)
+ BOOST_ASIO_TEST_CASE(test_4_arg_mutable_buffers_1_async_write)
+ BOOST_ASIO_TEST_CASE(test_4_arg_boost_array_buffers_async_write)
+ BOOST_ASIO_TEST_CASE(test_4_arg_std_array_buffers_async_write)
+ BOOST_ASIO_TEST_CASE(test_4_arg_vector_buffers_async_write)
+ BOOST_ASIO_TEST_CASE(test_4_arg_streambuf_async_write)
+)
diff --git a/libs/asio/test/write_at.cpp b/libs/asio/test/write_at.cpp
index 0fc9513ecc..91136b25a9 100644
--- a/libs/asio/test/write_at.cpp
+++ b/libs/asio/test/write_at.cpp
@@ -2,7 +2,7 @@
// write_at.cpp
// ~~~~~~~~~~~~
//
-// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2014 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)
@@ -16,21 +16,29 @@
// Test that header file is self-contained.
#include <boost/asio/write_at.hpp>
-#if defined(BOOST_ASIO_HAS_STD_ARRAY)
-# include <array>
-#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
-#include <boost/array.hpp>
-#include <boost/bind.hpp>
-#include <boost/noncopyable.hpp>
#include <cstring>
+#include "archetypes/async_result.hpp"
#include <boost/asio/io_service.hpp>
-#include <boost/asio/placeholders.hpp>
+#include <boost/asio/streambuf.hpp>
#include "unit_test.hpp"
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <boost/bind.hpp>
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+# include <functional>
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+#include <boost/array.hpp>
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
+
+#if defined(BOOST_ASIO_HAS_STD_ARRAY)
+# include <array>
+#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
+
using namespace std; // For memcmp, memcpy and memset.
class test_random_access_device
- : private boost::noncopyable
{
public:
typedef boost::asio::io_service io_service_type;
@@ -60,7 +68,7 @@ public:
}
template <typename Const_Buffers>
- bool check_buffers(boost::uint64_t offset,
+ bool check_buffers(boost::asio::uint64_t offset,
const Const_Buffers& buffers, size_t length)
{
if (offset + length > max_length)
@@ -84,7 +92,8 @@ public:
}
template <typename Const_Buffers>
- size_t write_some_at(boost::uint64_t offset, const Const_Buffers& buffers)
+ size_t write_some_at(boost::asio::uint64_t offset,
+ const Const_Buffers& buffers)
{
return boost::asio::buffer_copy(
boost::asio::buffer(data_, length_) + offset,
@@ -92,7 +101,7 @@ public:
}
template <typename Const_Buffers>
- size_t write_some_at(boost::uint64_t offset,
+ size_t write_some_at(boost::asio::uint64_t offset,
const Const_Buffers& buffers, boost::system::error_code& ec)
{
ec = boost::system::error_code();
@@ -100,7 +109,7 @@ public:
}
template <typename Const_Buffers, typename Handler>
- void async_write_some_at(boost::uint64_t offset,
+ void async_write_some_at(boost::asio::uint64_t offset,
const Const_Buffers& buffers, Handler handler)
{
size_t bytes_transferred = write_some_at(offset, buffers);
@@ -130,37 +139,37 @@ void test_3_arg_const_buffers_1_write_at()
s.reset();
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
}
void test_3_arg_mutable_buffers_1_write_at()
@@ -172,37 +181,37 @@ void test_3_arg_mutable_buffers_1_write_at()
s.reset();
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
}
void test_3_arg_vector_buffers_write_at()
@@ -215,37 +224,37 @@ void test_3_arg_vector_buffers_write_at()
s.reset();
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
}
void test_4_arg_nothrow_const_buffers_1_write_at()
@@ -258,43 +267,43 @@ void test_4_arg_nothrow_const_buffers_1_write_at()
s.reset();
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_4_arg_nothrow_mutable_buffers_1_write_at()
@@ -307,43 +316,43 @@ void test_4_arg_nothrow_mutable_buffers_1_write_at()
s.reset();
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_4_arg_nothrow_vector_buffers_write_at()
@@ -357,43 +366,43 @@ void test_4_arg_nothrow_vector_buffers_write_at()
s.reset();
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
}
bool old_style_transfer_all(const boost::system::error_code& ec,
@@ -418,356 +427,356 @@ void test_4_arg_const_buffers_1_write_at()
s.reset();
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
}
void test_4_arg_mutable_buffers_1_write_at()
@@ -780,356 +789,356 @@ void test_4_arg_mutable_buffers_1_write_at()
s.reset();
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
}
void test_4_arg_vector_buffers_write_at()
@@ -1143,356 +1152,356 @@ void test_4_arg_vector_buffers_write_at()
s.reset();
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all());
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42));
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1));
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10));
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42));
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
}
void test_5_arg_const_buffers_1_write_at()
@@ -1506,464 +1515,464 @@ void test_5_arg_const_buffers_1_write_at()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_5_arg_mutable_buffers_1_write_at()
@@ -1977,464 +1986,464 @@ void test_5_arg_mutable_buffers_1_write_at()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(mutable_write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(mutable_write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(!error);
}
void test_5_arg_vector_buffers_write_at()
@@ -2449,476 +2458,484 @@ void test_5_arg_vector_buffers_write_at()
boost::system::error_code error;
size_t bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_all(), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42), error);
- BOOST_CHECK(bytes_transferred == 50);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 50);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1), error);
- BOOST_CHECK(bytes_transferred == 1);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 1);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10), error);
- BOOST_CHECK(bytes_transferred == 10);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 10);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42), error);
- BOOST_CHECK(bytes_transferred == 42);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == 42);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
old_style_transfer_all, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(1);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 0, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
s.reset();
s.next_write_length(10);
error = boost::system::error_code();
bytes_transferred = boost::asio::write_at(s, 1234, buffers,
short_transfer, error);
- BOOST_CHECK(bytes_transferred == sizeof(write_data));
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
- BOOST_CHECK(!error);
+ BOOST_ASIO_CHECK(bytes_transferred == sizeof(write_data));
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(!error);
}
void async_write_handler(const boost::system::error_code& e,
size_t bytes_transferred, size_t expected_bytes_transferred, bool* called)
{
*called = true;
- BOOST_CHECK(!e);
- BOOST_CHECK(bytes_transferred == expected_bytes_transferred);
+ BOOST_ASIO_CHECK(!e);
+ BOOST_ASIO_CHECK(bytes_transferred == expected_bytes_transferred);
}
void test_4_arg_const_buffers_1_async_write_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
boost::asio::const_buffers_1 buffers
@@ -2927,94 +2944,97 @@ void test_4_arg_const_buffers_1_async_write_at()
s.reset();
bool called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write_at(s, 0, buffers,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
}
void test_4_arg_mutable_buffers_1_async_write_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
boost::asio::mutable_buffers_1 buffers
@@ -3023,94 +3043,98 @@ void test_4_arg_mutable_buffers_1_async_write_at()
s.reset();
bool called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write_at(s, 0, buffers,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
}
void test_4_arg_boost_array_buffers_async_write_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
boost::asio::io_service ios;
test_random_access_device s(ios);
boost::array<boost::asio::const_buffer, 2> buffers = { {
@@ -3120,94 +3144,98 @@ void test_4_arg_boost_array_buffers_async_write_at()
s.reset();
bool called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write_at(s, 0, buffers,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
}
void test_4_arg_std_array_buffers_async_write_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
#if defined(BOOST_ASIO_HAS_STD_ARRAY)
boost::asio::io_service ios;
test_random_access_device s(ios);
@@ -3218,95 +3246,98 @@ void test_4_arg_std_array_buffers_async_write_at()
s.reset();
bool called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write_at(s, 0, buffers,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
}
void test_4_arg_vector_buffers_async_write_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
std::vector<boost::asio::const_buffer> buffers;
@@ -3316,94 +3347,213 @@ void test_4_arg_vector_buffers_async_write_at()
s.reset();
bool called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write_at(s, 0, buffers,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+}
+
+void test_4_arg_streambuf_async_write_at()
+{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+ boost::asio::io_service ios;
+ test_random_access_device s(ios);
+ boost::asio::streambuf sb;
+ boost::asio::const_buffers_1 buffers
+ = boost::asio::buffer(write_data, sizeof(write_data));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ bool called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ int i = boost::asio::async_write_at(s, 0, sb,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
}
void test_5_arg_const_buffers_1_async_write_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
boost::asio::const_buffers_1 buffers
@@ -3413,731 +3563,639 @@ void test_5_arg_const_buffers_1_async_write_at()
bool called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write_at(s, 0, buffers, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
}
void test_5_arg_mutable_buffers_1_async_write_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
boost::asio::mutable_buffers_1 buffers
@@ -4147,731 +4205,640 @@ void test_5_arg_mutable_buffers_1_async_write_at()
bool called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(mutable_write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(mutable_write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write_at(s, 0, buffers, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
}
void test_5_arg_boost_array_buffers_async_write_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+#if defined(BOOST_ASIO_HAS_BOOST_ARRAY)
boost::asio::io_service ios;
test_random_access_device s(ios);
boost::array<boost::asio::const_buffer, 2> buffers = { {
@@ -4882,731 +4849,640 @@ void test_5_arg_boost_array_buffers_async_write_at()
bool called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write_at(s, 0, buffers, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+#endif // defined(BOOST_ASIO_HAS_BOOST_ARRAY)
}
void test_5_arg_std_array_buffers_async_write_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
#if defined(BOOST_ASIO_HAS_STD_ARRAY)
boost::asio::io_service ios;
test_random_access_device s(ios);
@@ -5618,732 +5494,640 @@ void test_5_arg_std_array_buffers_async_write_at()
bool called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write_at(s, 0, buffers, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
#endif // defined(BOOST_ASIO_HAS_STD_ARRAY)
}
void test_5_arg_vector_buffers_async_write_at()
{
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
boost::asio::io_service ios;
test_random_access_device s(ios);
std::vector<boost::asio::const_buffer> buffers;
@@ -6354,753 +6138,1407 @@ void test_5_arg_vector_buffers_async_write_at()
bool called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_all(),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_at_least(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 50, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 50));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(1),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 1, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 1));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(10),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 10, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 10));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers,
boost::asio::transfer_exactly(42),
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- 42, &called));
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, 42));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(1);
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 0, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
s.reset();
s.next_write_length(10);
called = false;
boost::asio::async_write_at(s, 1234, buffers, short_transfer,
- boost::bind(async_write_handler,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred,
- sizeof(write_data), &called));
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
ios.reset();
ios.run();
- BOOST_CHECK(called);
- BOOST_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ int i = boost::asio::async_write_at(s, 0, buffers, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
}
-test_suite* init_unit_test_suite(int, char*[])
+void test_5_arg_streambuf_async_write_at()
{
- test_suite* test = BOOST_TEST_SUITE("write_at");
- test->add(BOOST_TEST_CASE(&test_3_arg_const_buffers_1_write_at));
- test->add(BOOST_TEST_CASE(&test_3_arg_mutable_buffers_1_write_at));
- test->add(BOOST_TEST_CASE(&test_3_arg_vector_buffers_write_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_nothrow_const_buffers_1_write_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_nothrow_mutable_buffers_1_write_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_nothrow_vector_buffers_write_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_const_buffers_1_write_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_mutable_buffers_1_write_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_vector_buffers_write_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_const_buffers_1_write_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_mutable_buffers_1_write_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_vector_buffers_write_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_const_buffers_1_async_write_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_mutable_buffers_1_async_write_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_boost_array_buffers_async_write_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_std_array_buffers_async_write_at));
- test->add(BOOST_TEST_CASE(&test_4_arg_vector_buffers_async_write_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_const_buffers_1_async_write_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_mutable_buffers_1_async_write_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_boost_array_buffers_async_write_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_std_array_buffers_async_write_at));
- test->add(BOOST_TEST_CASE(&test_5_arg_vector_buffers_async_write_at));
- return test;
+#if defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = boost;
+#else // defined(BOOST_ASIO_HAS_BOOST_BIND)
+ namespace bindns = std;
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
+
+ boost::asio::io_service ios;
+ test_random_access_device s(ios);
+ boost::asio::streambuf sb;
+ boost::asio::const_buffers_1 buffers
+ = boost::asio::buffer(write_data, sizeof(write_data));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ bool called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_all(),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_all(),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_all(),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_all(),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_all(),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_all(),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_at_least(1),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_at_least(1),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_at_least(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_at_least(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_at_least(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_at_least(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_at_least(10),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_at_least(10),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_at_least(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_at_least(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_at_least(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_at_least(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_at_least(42),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_at_least(42),
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_at_least(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_at_least(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_at_least(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 50));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_at_least(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 50, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 50));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_exactly(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_exactly(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_exactly(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_exactly(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_exactly(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_exactly(1),
+ bindns::bind(async_write_handler,
+ _1, _2, 1, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 1));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_exactly(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_exactly(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_exactly(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_exactly(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_exactly(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_exactly(10),
+ bindns::bind(async_write_handler,
+ _1, _2, 10, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 10));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_exactly(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_exactly(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_exactly(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_exactly(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb,
+ boost::asio::transfer_exactly(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb,
+ boost::asio::transfer_exactly(42),
+ bindns::bind(async_write_handler,
+ _1, _2, 42, &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, 42));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 0, sb, old_style_transfer_all,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb, old_style_transfer_all,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb, old_style_transfer_all,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb, old_style_transfer_all,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb, old_style_transfer_all,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb, old_style_transfer_all,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 0, sb, short_transfer,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb, short_transfer,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb, short_transfer,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(1);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb, short_transfer,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 0, sb, short_transfer,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ s.next_write_length(10);
+ called = false;
+ boost::asio::async_write_at(s, 1234, sb, short_transfer,
+ bindns::bind(async_write_handler,
+ _1, _2, sizeof(write_data), &called));
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(called);
+ BOOST_ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
+
+ s.reset();
+ sb.consume(sb.size());
+ sb.sputn(write_data, sizeof(write_data));
+ int i = boost::asio::async_write_at(s, 0, sb, short_transfer,
+ archetypes::lazy_handler());
+ BOOST_ASIO_CHECK(i == 42);
+ ios.reset();
+ ios.run();
+ BOOST_ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
}
+
+BOOST_ASIO_TEST_SUITE
+(
+ "write_at",
+ BOOST_ASIO_TEST_CASE(test_3_arg_const_buffers_1_write_at)
+ BOOST_ASIO_TEST_CASE(test_3_arg_mutable_buffers_1_write_at)
+ BOOST_ASIO_TEST_CASE(test_3_arg_vector_buffers_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_nothrow_const_buffers_1_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_nothrow_mutable_buffers_1_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_nothrow_vector_buffers_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_const_buffers_1_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_mutable_buffers_1_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_vector_buffers_write_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_const_buffers_1_write_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_mutable_buffers_1_write_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_vector_buffers_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_const_buffers_1_async_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_mutable_buffers_1_async_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_boost_array_buffers_async_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_std_array_buffers_async_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_vector_buffers_async_write_at)
+ BOOST_ASIO_TEST_CASE(test_4_arg_streambuf_async_write_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_const_buffers_1_async_write_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_mutable_buffers_1_async_write_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_boost_array_buffers_async_write_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_std_array_buffers_async_write_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_vector_buffers_async_write_at)
+ BOOST_ASIO_TEST_CASE(test_5_arg_streambuf_async_write_at)
+)